From 30b9a4d6b479ecfcb84d4803f5d15ee9b6c7edd6 Mon Sep 17 00:00:00 2001
From: Ilya Zhuravlev <zhuravlevilya@ya.ru>
Date: Sun, 3 Feb 2013 16:19:09 +0400
Subject: [PATCH] Add Freetype support

---
 .gitignore                     |    4 +
 CMakeLists.txt                 |    2 +
 README.txt                     |    4 +
 fonts/liberationmono.ttf       |  Bin 0 -> 333636 bytes
 fonts/liberationsans.ttf       |  Bin 0 -> 133828 bytes
 minetest.conf.example          |    5 +
 src/CMakeLists.txt             |   45 +
 src/cguittfont/CGUITTFont.cpp  | 1146 ++++++++++
 src/cguittfont/CGUITTFont.h    |  377 ++++
 src/cguittfont/CMakeLists.txt  |   17 +
 src/cguittfont/irrUString.h    | 3877 ++++++++++++++++++++++++++++++++
 src/cguittfont/xCGUITTFont.cpp |    5 +
 src/cguittfont/xCGUITTFont.h   |    7 +
 src/cmake_config.h.in          |    1 +
 src/config.h                   |    3 +
 src/defaultsettings.cpp        |    6 +
 src/gettext.h                  |   41 +-
 src/guiChatConsole.cpp         |   10 +
 src/guiMainMenu.cpp            |   12 +-
 src/guiTextInputMenu.cpp       |   12 +-
 src/intlGUIEditBox.cpp         | 1508 +++++++++++++
 src/intlGUIEditBox.h           |  178 ++
 src/main.cpp                   |   27 +-
 23 files changed, 7271 insertions(+), 16 deletions(-)
 create mode 100644 fonts/liberationmono.ttf
 create mode 100644 fonts/liberationsans.ttf
 create mode 100644 src/cguittfont/CGUITTFont.cpp
 create mode 100644 src/cguittfont/CGUITTFont.h
 create mode 100644 src/cguittfont/CMakeLists.txt
 create mode 100644 src/cguittfont/irrUString.h
 create mode 100644 src/cguittfont/xCGUITTFont.cpp
 create mode 100644 src/cguittfont/xCGUITTFont.h
 create mode 100644 src/intlGUIEditBox.cpp
 create mode 100644 src/intlGUIEditBox.h

diff --git a/.gitignore b/.gitignore
index ee210c7c0..e282ec130 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,6 +36,10 @@ src/jthread/cmake_install.cmake
 src/jthread/libjthread.a
 src/lua/build/
 src/lua/CMakeFiles/
+src/cguittfont/CMakeFiles/
+src/cguittfont/libcguittfont.a
+src/cguittfont/cmake_install.cmake
+src/cguittfont/Makefile
 CMakeCache.txt
 CPackConfig.cmake
 CPackSourceConfig.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fdb0347b7..fbf46d059 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -148,6 +148,8 @@ if(RUN_IN_PLACE)
 	install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/textures/all/textures_here.txt" DESTINATION "${SHAREDIR}/textures/all")
 endif()
 
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/fonts" DESTINATION "${SHAREDIR}")
+
 install(FILES "README.txt" DESTINATION "${DOCDIR}")
 install(FILES "doc/lua_api.txt" DESTINATION "${DOCDIR}")
 install(FILES "doc/mapformat.txt" DESTINATION "${DOCDIR}")
diff --git a/README.txt b/README.txt
index 8c5a46223..d6344bd2c 100644
--- a/README.txt
+++ b/README.txt
@@ -372,4 +372,8 @@ DejaVu Sans Mono:
 
   Copyright (c) 2006 by Tavmjong Bah. All Rights Reserved.
 
+  Liberation Fonts Copyright:
+
+  Copyright (c) 2007 Red Hat, Inc. All rights reserved. LIBERATION is a trademark of Red Hat, Inc.
+
 
diff --git a/fonts/liberationmono.ttf b/fonts/liberationmono.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..7260bd65e0dd2df5d0c398d579c126788603e5fd
GIT binary patch
literal 333636
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

literal 0
HcmV?d00001

diff --git a/fonts/liberationsans.ttf b/fonts/liberationsans.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..59d2e251b04ce9540c1915c5bd153cd1a709390c
GIT binary patch
literal 133828
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%0A#4WO;h)-5om@<Tp>Q%c|Jj
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
R0xTWQj&G;@mEA|*`d^hTz0m*w

literal 0
HcmV?d00001

diff --git a/minetest.conf.example b/minetest.conf.example
index 295725876..5afe6c5e2 100644
--- a/minetest.conf.example
+++ b/minetest.conf.example
@@ -163,6 +163,11 @@
 # File in client/serverlist/ that contains your favorite servers displayed in the Multiplayer Tab
 #serverlist_file = favoriteservers.txt
 
+#font_path = fonts/liberationsans.ttf
+#font_size = 13
+#mono_font_path = fonts/liberationmono.ttf
+#mono_font_size = 13
+
 #
 # Server stuff
 #
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 2937a32ec..6b96f53fa 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -93,6 +93,12 @@ if(USE_SOUND)
 		)
 endif()
 
+option(ENABLE_FREETYPE "Enable freetype2 (truetype fonts and basic unicode support)" OFF)
+set(USE_FREETYPE 0)
+if(ENABLE_FREETYPE)
+	set(USE_FREETYPE 1)
+endif(ENABLE_FREETYPE)
+
 if(NOT MSVC)
 	set(USE_GPROF 0 CACHE BOOL "Use -pg flag for g++")
 endif()
@@ -117,6 +123,14 @@ if(WIN32)
 			CACHE FILEPATH "Path to zlibwapi.dll (for installation)")
 	set(IRRLICHT_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../../irrlicht-1.7.2"
 			CACHE PATH "irrlicht dir")
+	if(USE_FREETYPE)
+		set(FREETYPE_INCLUDE_DIR_ft2build "${PROJECT_SOURCE_DIR}/../../freetype2/include/"
+				CACHE PATH "freetype include dir")
+		set(FREETYPE_INCLUDE_DIR_freetype2 "${PROJECT_SOURCE_DIR}/../../freetype2/include/freetype"
+				CACHE PATH "freetype include dir")
+		set(FREETYPE_LIBRARY "${PROJECT_SOURCE_DIR}/../../freetype2/objs/win32/vc2005/freetype247.lib"
+				CACHE FILEPATH "Path to freetype247.lib")
+	endif(USE_FREETYPE)
 	set(MINGWM10_DLL ""
 			CACHE FILEPATH "Path to mingwm10.dll (for installation)")
 	if(ENABLE_SOUND)
@@ -157,6 +171,12 @@ endif()
 find_package(Jthread REQUIRED)
 find_package(Sqlite3 REQUIRED)
 
+if(USE_FREETYPE)
+	find_package(Freetype REQUIRED)
+	set(CGUITTFONT_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cguittfont")
+	set(CGUITTFONT_LIBRARY cguittfont)
+endif(USE_FREETYPE)
+
 # Do not use system-wide installation of Lua, because it'll likely be a
 # different version and/or has different build options.
 set(LUA_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/lua/src")
@@ -288,6 +308,13 @@ set(minetest_SRCS
 	main.cpp
 )
 
+if(USE_FREETYPE)
+	set(minetest_SRCS
+		${minetest_SRCS}
+		intlGUIEditBox.cpp
+	)
+endif(USE_FREETYPE)
+
 # Server sources
 set(minetestserver_SRCS
 	${common_SRCS}
@@ -307,6 +334,13 @@ include_directories(
 	${LUA_INCLUDE_DIR}
 )
 
+if(USE_FREETYPE)
+	include_directories(
+		${FREETYPE_INCLUDE_DIRS}
+		${CGUITTFONT_INCLUDE_DIR}
+	)
+endif(USE_FREETYPE)
+
 set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin")
 
 if(BUILD_CLIENT)
@@ -338,6 +372,13 @@ if(BUILD_CLIENT)
 			${CURL_INCLUDE_DIR}
 		)
 	endif(USE_CURL)
+	if(USE_FREETYPE)
+		target_link_libraries(
+			${PROJECT_NAME}
+			${FREETYPE_LIBRARY}
+			${CGUITTFONT_LIBRARY}
+		)
+	endif(USE_FREETYPE)
 endif(BUILD_CLIENT)
 
 if(BUILD_SERVER)
@@ -519,6 +560,10 @@ else (SQLITE3_FOUND)
 	add_subdirectory(sqlite)
 endif (SQLITE3_FOUND)
 
+if (BUILD_CLIENT AND USE_FREETYPE)
+	add_subdirectory(cguittfont)
+endif (BUILD_CLIENT AND USE_FREETYPE)
+
 if (LUA_FOUND)
 else (LUA_FOUND)
 	add_subdirectory(lua)
diff --git a/src/cguittfont/CGUITTFont.cpp b/src/cguittfont/CGUITTFont.cpp
new file mode 100644
index 000000000..fb8199e21
--- /dev/null
+++ b/src/cguittfont/CGUITTFont.cpp
@@ -0,0 +1,1146 @@
+/*
+   CGUITTFont FreeType class for Irrlicht
+   Copyright (c) 2009-2010 John Norman
+
+   This software is provided 'as-is', without any express or implied
+   warranty. In no event will the authors be held liable for any
+   damages arising from the use of this software.
+
+   Permission is granted to anyone to use this software for any
+   purpose, including commercial applications, and to alter it and
+   redistribute it freely, subject to the following restrictions:
+
+   1. The origin of this software must not be misrepresented; you
+      must not claim that you wrote the original software. If you use
+      this software in a product, an acknowledgment in the product
+      documentation would be appreciated but is not required.
+
+   2. Altered source versions must be plainly marked as such, and
+      must not be misrepresented as being the original software.
+
+   3. This notice may not be removed or altered from any source
+      distribution.
+
+   The original version of this class can be located at:
+   http://irrlicht.suckerfreegames.com/
+
+   John Norman
+   john@suckerfreegames.com
+*/
+
+#include <irrlicht.h>
+#include "CGUITTFont.h"
+
+namespace irr
+{
+namespace gui
+{
+
+// Manages the FT_Face cache.
+struct SGUITTFace : public virtual irr::IReferenceCounted
+{
+	SGUITTFace() : face_buffer(0), face_buffer_size(0)
+	{
+		memset((void*)&face, 0, sizeof(FT_Face));
+	}
+
+	~SGUITTFace()
+	{
+		FT_Done_Face(face);
+		delete[] face_buffer;
+	}
+
+	FT_Face face;
+	FT_Byte* face_buffer;
+	FT_Long face_buffer_size;
+};
+
+// Static variables.
+FT_Library CGUITTFont::c_library;
+core::map<io::path, SGUITTFace*> CGUITTFont::c_faces;
+bool CGUITTFont::c_libraryLoaded = false;
+scene::IMesh* CGUITTFont::shared_plane_ptr_ = 0;
+scene::SMesh CGUITTFont::shared_plane_;
+
+//
+
+video::IImage* SGUITTGlyph::createGlyphImage(const FT_Bitmap& bits, video::IVideoDriver* driver) const
+{
+	// Determine what our texture size should be.
+	// Add 1 because textures are inclusive-exclusive.
+	core::dimension2du d(bits.width + 1, bits.rows + 1);
+	core::dimension2du texture_size;
+	//core::dimension2du texture_size(bits.width + 1, bits.rows + 1);
+
+	// Create and load our image now.
+	video::IImage* image = 0;
+	switch (bits.pixel_mode)
+	{
+		case FT_PIXEL_MODE_MONO:
+		{
+			// Create a blank image and fill it with transparent pixels.
+			texture_size = d.getOptimalSize(true, true);
+			image = driver->createImage(video::ECF_A1R5G5B5, texture_size);
+			image->fill(video::SColor(0, 255, 255, 255));
+
+			// Load the monochrome data in.
+			const u32 image_pitch = image->getPitch() / sizeof(u16);
+			u16* image_data = (u16*)image->lock();
+			u8* glyph_data = bits.buffer;
+			for (s32 y = 0; y < bits.rows; ++y)
+			{
+				u16* row = image_data;
+				for (s32 x = 0; x < bits.width; ++x)
+				{
+					// Monochrome bitmaps store 8 pixels per byte.  The left-most pixel is the bit 0x80.
+					// So, we go through the data each bit at a time.
+					if ((glyph_data[y * bits.pitch + (x / 8)] & (0x80 >> (x % 8))) != 0)
+						*row = 0xFFFF;
+					++row;
+				}
+				image_data += image_pitch;
+			}
+			image->unlock();
+			break;
+		}
+
+		case FT_PIXEL_MODE_GRAY:
+		{
+			// Create our blank image.
+			texture_size = d.getOptimalSize(!driver->queryFeature(video::EVDF_TEXTURE_NPOT), !driver->queryFeature(video::EVDF_TEXTURE_NSQUARE), true, 0);
+			image = driver->createImage(video::ECF_A8R8G8B8, texture_size);
+			image->fill(video::SColor(0, 255, 255, 255));
+
+			// Load the grayscale data in.
+			const float gray_count = static_cast<float>(bits.num_grays);
+			const u32 image_pitch = image->getPitch() / sizeof(u32);
+			u32* image_data = (u32*)image->lock();
+			u8* glyph_data = bits.buffer;
+			for (s32 y = 0; y < bits.rows; ++y)
+			{
+				u8* row = glyph_data;
+				for (s32 x = 0; x < bits.width; ++x)
+				{
+					image_data[y * image_pitch + x] |= static_cast<u32>(255.0f * (static_cast<float>(*row++) / gray_count)) << 24;
+					//data[y * image_pitch + x] |= ((u32)(*bitsdata++) << 24);
+				}
+				glyph_data += bits.pitch;
+			}
+			image->unlock();
+			break;
+		}
+		default:
+			// TODO: error message?
+			return 0;
+	}
+	return image;
+}
+
+void SGUITTGlyph::preload(u32 char_index, FT_Face face, video::IVideoDriver* driver, u32 font_size, const FT_Int32 loadFlags)
+{
+	if (isLoaded) return;
+
+	// Set the size of the glyph.
+	FT_Set_Pixel_Sizes(face, 0, font_size);
+
+	// Attempt to load the glyph.
+	if (FT_Load_Glyph(face, char_index, loadFlags) != FT_Err_Ok)
+		// TODO: error message?
+		return;
+
+	FT_GlyphSlot glyph = face->glyph;
+	FT_Bitmap bits = glyph->bitmap;
+
+	// Setup the glyph information here:
+	advance = glyph->advance;
+	offset = core::vector2di(glyph->bitmap_left, glyph->bitmap_top);
+
+	// Try to get the last page with available slots.
+	CGUITTGlyphPage* page = parent->getLastGlyphPage();
+
+	// If we need to make a new page, do that now.
+	if (!page)
+	{
+		page = parent->createGlyphPage(bits.pixel_mode);
+		if (!page)
+			// TODO: add error message?
+			return;
+	}
+
+	glyph_page = parent->getLastGlyphPageIndex();
+	u32 texture_side_length = page->texture->getOriginalSize().Width;
+	core::vector2di page_position(
+		(page->used_slots % (texture_side_length / font_size)) * font_size,
+		(page->used_slots / (texture_side_length / font_size)) * font_size
+		);
+	source_rect.UpperLeftCorner = page_position;
+	source_rect.LowerRightCorner = core::vector2di(page_position.X + bits.width, page_position.Y + bits.rows);
+
+	page->dirty = true;
+	++page->used_slots;
+	--page->available_slots;
+
+	// We grab the glyph bitmap here so the data won't be removed when the next glyph is loaded.
+	surface = createGlyphImage(bits, driver);
+
+	// Set our glyph as loaded.
+	isLoaded = true;
+}
+
+void SGUITTGlyph::unload()
+{
+	if (surface)
+	{
+		surface->drop();
+		surface = 0;
+	}
+	isLoaded = false;
+}
+
+//////////////////////
+
+CGUITTFont* CGUITTFont::createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency)
+{
+	if (!c_libraryLoaded)
+	{
+		if (FT_Init_FreeType(&c_library))
+			return 0;
+		c_libraryLoaded = true;
+	}
+
+	CGUITTFont* font = new CGUITTFont(env);
+	bool ret = font->load(filename, size, antialias, transparency);
+	if (!ret)
+	{
+		font->drop();
+		return 0;
+	}
+
+	return font;
+}
+
+CGUITTFont* CGUITTFont::createTTFont(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias, const bool transparency)
+{
+	if (!c_libraryLoaded)
+	{
+		if (FT_Init_FreeType(&c_library))
+			return 0;
+		c_libraryLoaded = true;
+	}
+
+	CGUITTFont* font = new CGUITTFont(device->getGUIEnvironment());
+	font->Device = device;
+	bool ret = font->load(filename, size, antialias, transparency);
+	if (!ret)
+	{
+		font->drop();
+		return 0;
+	}
+
+	return font;
+}
+
+CGUITTFont* CGUITTFont::create(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias, const bool transparency)
+{
+	return CGUITTFont::createTTFont(env, filename, size, antialias, transparency);
+}
+
+CGUITTFont* CGUITTFont::create(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias, const bool transparency)
+{
+	return CGUITTFont::createTTFont(device, filename, size, antialias, transparency);
+}
+
+//////////////////////
+
+//! Constructor.
+CGUITTFont::CGUITTFont(IGUIEnvironment *env)
+: use_monochrome(false), use_transparency(true), use_hinting(true), use_auto_hinting(true),
+batch_load_size(1), Device(0), Environment(env), Driver(0), GlobalKerningWidth(0), GlobalKerningHeight(0)
+{
+	#ifdef _DEBUG
+	setDebugName("CGUITTFont");
+	#endif
+
+	if (Environment)
+	{
+		// don't grab environment, to avoid circular references
+		Driver = Environment->getVideoDriver();
+	}
+
+	if (Driver)
+		Driver->grab();
+
+	setInvisibleCharacters(L" ");
+
+	// Glyphs aren't reference counted, so don't try to delete them when we free the array.
+	Glyphs.set_free_when_destroyed(false);
+}
+
+bool CGUITTFont::load(const io::path& filename, const u32 size, const bool antialias, const bool transparency)
+{
+	// Some sanity checks.
+	if (Environment == 0 || Driver == 0) return false;
+	if (size == 0) return false;
+	if (filename.size() == 0) return false;
+
+	io::IFileSystem* filesystem = Environment->getFileSystem();
+	irr::ILogger* logger = (Device != 0 ? Device->getLogger() : 0);
+	this->size = size;
+	this->filename = filename;
+
+	// Update the font loading flags when the font is first loaded.
+	this->use_monochrome = !antialias;
+	this->use_transparency = transparency;
+	update_load_flags();
+
+	// Log.
+	if (logger)
+		logger->log(L"CGUITTFont", core::stringw(core::stringw(L"Creating new font: ") + core::ustring(filename).toWCHAR_s() + L" " + core::stringc(size) + L"pt " + (antialias ? L"+antialias " : L"-antialias ") + (transparency ? L"+transparency" : L"-transparency")).c_str(), irr::ELL_INFORMATION);
+
+	// Grab the face.
+	SGUITTFace* face = 0;
+	core::map<io::path, SGUITTFace*>::Node* node = c_faces.find(filename);
+	if (node == 0)
+	{
+		face = new SGUITTFace();
+		c_faces.set(filename, face);
+
+		if (filesystem)
+		{
+			// Read in the file data.
+			io::IReadFile* file = filesystem->createAndOpenFile(filename);
+			if (file == 0)
+			{
+				if (logger) logger->log(L"CGUITTFont", L"Failed to open the file.", irr::ELL_INFORMATION);
+
+				c_faces.remove(filename);
+				delete face;
+				face = 0;
+				return false;
+			}
+			face->face_buffer = new FT_Byte[file->getSize()];
+			file->read(face->face_buffer, file->getSize());
+			face->face_buffer_size = file->getSize();
+			file->drop();
+
+			// Create the face.
+			if (FT_New_Memory_Face(c_library, face->face_buffer, face->face_buffer_size, 0, &face->face))
+			{
+				if (logger) logger->log(L"CGUITTFont", L"FT_New_Memory_Face failed.", irr::ELL_INFORMATION);
+
+				c_faces.remove(filename);
+				delete face;
+				face = 0;
+				return false;
+			}
+		}
+		else
+		{
+			core::ustring converter(filename);
+			if (FT_New_Face(c_library, reinterpret_cast<const char*>(converter.toUTF8_s().c_str()), 0, &face->face))
+			{
+				if (logger) logger->log(L"CGUITTFont", L"FT_New_Face failed.", irr::ELL_INFORMATION);
+
+				c_faces.remove(filename);
+				delete face;
+				face = 0;
+				return false;
+			}
+		}
+	}
+	else
+	{
+		// Using another instance of this face.
+		face = node->getValue();
+		face->grab();
+	}
+
+	// Store our face.
+	tt_face = face->face;
+
+	// Store font metrics.
+	FT_Set_Pixel_Sizes(tt_face, size, 0);
+	font_metrics = tt_face->size->metrics;
+
+	// Allocate our glyphs.
+	Glyphs.clear();
+	Glyphs.reallocate(tt_face->num_glyphs);
+	Glyphs.set_used(tt_face->num_glyphs);
+	for (FT_Long i = 0; i < tt_face->num_glyphs; ++i)
+	{
+		Glyphs[i].isLoaded = false;
+		Glyphs[i].glyph_page = 0;
+		Glyphs[i].source_rect = core::recti();
+		Glyphs[i].offset = core::vector2di();
+		Glyphs[i].advance = FT_Vector();
+		Glyphs[i].surface = 0;
+		Glyphs[i].parent = this;
+	}
+
+	// Cache the first 127 ascii characters.
+	u32 old_size = batch_load_size;
+	batch_load_size = 127;
+	getGlyphIndexByChar((uchar32_t)0);
+	batch_load_size = old_size;
+
+	return true;
+}
+
+CGUITTFont::~CGUITTFont()
+{
+	// Delete the glyphs and glyph pages.
+	reset_images();
+	CGUITTAssistDelete::Delete(Glyphs);
+	//Glyphs.clear();
+
+	// We aren't using this face anymore.
+	core::map<io::path, SGUITTFace*>::Node* n = c_faces.find(filename);
+	if (n)
+	{
+		SGUITTFace* f = n->getValue();
+
+		// Drop our face.  If this was the last face, the destructor will clean up.
+		if (f->drop())
+			c_faces.remove(filename);
+
+		// If there are no more faces referenced by FreeType, clean up.
+		if (c_faces.size() == 0)
+		{
+			FT_Done_FreeType(c_library);
+			c_libraryLoaded = false;
+		}
+	}
+
+	// Drop our driver now.
+	if (Driver)
+		Driver->drop();
+}
+
+void CGUITTFont::reset_images()
+{
+	// Delete the glyphs.
+	for (u32 i = 0; i != Glyphs.size(); ++i)
+		Glyphs[i].unload();
+
+	// Unload the glyph pages from video memory.
+	for (u32 i = 0; i != Glyph_Pages.size(); ++i)
+		delete Glyph_Pages[i];
+	Glyph_Pages.clear();
+
+	// Always update the internal FreeType loading flags after resetting.
+	update_load_flags();
+}
+
+void CGUITTFont::update_glyph_pages() const
+{
+	for (u32 i = 0; i != Glyph_Pages.size(); ++i)
+	{
+		if (Glyph_Pages[i]->dirty)
+			Glyph_Pages[i]->updateTexture();
+	}
+}
+
+CGUITTGlyphPage* CGUITTFont::getLastGlyphPage() const
+{
+	CGUITTGlyphPage* page = 0;
+	if (Glyph_Pages.empty())
+		return 0;
+	else
+	{
+		page = Glyph_Pages[getLastGlyphPageIndex()];
+		if (page->available_slots == 0)
+			page = 0;
+	}
+	return page;
+}
+
+CGUITTGlyphPage* CGUITTFont::createGlyphPage(const u8& pixel_mode)
+{
+	CGUITTGlyphPage* page = 0;
+	
+	// Name of our page.
+	io::path name("TTFontGlyphPage_");
+	name += tt_face->family_name;
+	name += ".";
+	name += tt_face->style_name;
+	name += ".";
+	name += size;
+	name += "_";
+	name += Glyph_Pages.size(); // The newly created page will be at the end of the collection.
+
+	// Create the new page.
+	page = new CGUITTGlyphPage(Driver, name);
+
+	// Determine our maximum texture size.
+	// If we keep getting 0, set it to 1024x1024, as that number is pretty safe.
+	core::dimension2du max_texture_size = max_page_texture_size;
+	if (max_texture_size.Width == 0 || max_texture_size.Height == 0)
+		max_texture_size = Driver->getMaxTextureSize();
+	if (max_texture_size.Width == 0 || max_texture_size.Height == 0)
+		max_texture_size = core::dimension2du(1024, 1024);
+
+	// We want to try to put at least 144 glyphs on a single texture.
+	core::dimension2du page_texture_size;
+	if (size <= 21) page_texture_size = core::dimension2du(256, 256);
+	else if (size <= 42) page_texture_size = core::dimension2du(512, 512);
+	else if (size <= 84) page_texture_size = core::dimension2du(1024, 1024);
+	else if (size <= 168) page_texture_size = core::dimension2du(2048, 2048);
+	else page_texture_size = core::dimension2du(4096, 4096);
+
+	if (page_texture_size.Width > max_texture_size.Width || page_texture_size.Height > max_texture_size.Height)
+		page_texture_size = max_texture_size;
+
+	if (!page->createPageTexture(pixel_mode, page_texture_size))
+		// TODO: add error message?
+		return 0;
+
+	if (page)
+	{
+		// Determine the number of glyph slots on the page and add it to the list of pages.
+		page->available_slots = (page_texture_size.Width / size) * (page_texture_size.Height / size);
+		Glyph_Pages.push_back(page);
+	}
+	return page;
+}
+
+void CGUITTFont::setTransparency(const bool flag)
+{
+	use_transparency = flag;
+	reset_images();
+}
+
+void CGUITTFont::setMonochrome(const bool flag)
+{
+	use_monochrome = flag;
+	reset_images();
+}
+
+void CGUITTFont::setFontHinting(const bool enable, const bool enable_auto_hinting)
+{
+	use_hinting = enable;
+	use_auto_hinting = enable_auto_hinting;
+	reset_images();
+}
+
+void CGUITTFont::draw(const core::stringw& text, const core::rect<s32>& position, video::SColor color, bool hcenter, bool vcenter, const core::rect<s32>* clip)
+{
+	if (!Driver)
+		return;
+
+	// Clear the glyph pages of their render information.
+	for (u32 i = 0; i < Glyph_Pages.size(); ++i)
+	{
+		Glyph_Pages[i]->render_positions.clear();
+		Glyph_Pages[i]->render_source_rects.clear();
+	}
+
+	// Set up some variables.
+	core::dimension2d<s32> textDimension;
+	core::position2d<s32> offset = position.UpperLeftCorner;
+
+	// Determine offset positions.
+	if (hcenter || vcenter)
+	{
+		textDimension = getDimension(text.c_str());
+
+		if (hcenter)
+			offset.X = ((position.getWidth() - textDimension.Width) >> 1) + offset.X;
+
+		if (vcenter)
+			offset.Y = ((position.getHeight() - textDimension.Height) >> 1) + offset.Y;
+	}
+
+	// Convert to a unicode string.
+	core::ustring utext(text);
+
+	// Set up our render map.
+	core::map<u32, CGUITTGlyphPage*> Render_Map;
+
+	// Start parsing characters.
+	u32 n;
+	uchar32_t previousChar = 0;
+	core::ustring::const_iterator iter(utext);
+	while (!iter.atEnd())
+	{
+		uchar32_t currentChar = *iter;
+		n = getGlyphIndexByChar(currentChar);
+		bool visible = (Invisible.findFirst(currentChar) == -1);
+		if (n > 0 && visible)
+		{
+			bool lineBreak=false;
+			if (currentChar == L'\r') // Mac or Windows breaks
+			{
+				lineBreak = true;
+				if (*(iter + 1) == (uchar32_t)'\n')	// Windows line breaks.
+					currentChar = *(++iter);
+			}
+			else if (currentChar == (uchar32_t)'\n') // Unix breaks
+			{
+				lineBreak = true;
+			}
+
+			if (lineBreak)
+			{
+				previousChar = 0;
+				offset.Y += font_metrics.ascender / 64;
+				offset.X = position.UpperLeftCorner.X;
+
+				if (hcenter)
+					offset.X += (position.getWidth() - textDimension.Width) >> 1;
+				++iter;
+				continue;
+			}
+
+			// Calculate the glyph offset.
+			s32 offx = Glyphs[n-1].offset.X;
+			s32 offy = (font_metrics.ascender / 64) - Glyphs[n-1].offset.Y;
+
+			// Apply kerning.
+			core::vector2di k = getKerning(currentChar, previousChar);
+			offset.X += k.X;
+			offset.Y += k.Y;
+
+			// Determine rendering information.
+			SGUITTGlyph& glyph = Glyphs[n-1];
+			CGUITTGlyphPage* const page = Glyph_Pages[glyph.glyph_page];
+			page->render_positions.push_back(core::position2di(offset.X + offx, offset.Y + offy));
+			page->render_source_rects.push_back(glyph.source_rect);
+			Render_Map.set(glyph.glyph_page, page);
+		}
+		offset.X += getWidthFromCharacter(currentChar);
+
+		previousChar = currentChar;
+		++iter;
+	}
+
+	// Draw now.
+	update_glyph_pages();
+	core::map<u32, CGUITTGlyphPage*>::Iterator j = Render_Map.getIterator();
+	while (!j.atEnd())
+	{
+		core::map<u32, CGUITTGlyphPage*>::Node* n = j.getNode();
+		j++;
+		if (n == 0) continue;
+
+		CGUITTGlyphPage* page = n->getValue();
+
+		if (!use_transparency) color.color |= 0xff000000;
+		Driver->draw2DImageBatch(page->texture, page->render_positions, page->render_source_rects, clip, color, true);
+	}
+}
+
+core::dimension2d<u32> CGUITTFont::getCharDimension(const wchar_t ch) const
+{
+	return core::dimension2d<u32>(getWidthFromCharacter(ch), getHeightFromCharacter(ch));
+}
+
+core::dimension2d<u32> CGUITTFont::getDimension(const wchar_t* text) const
+{
+	return getDimension(core::ustring(text));
+}
+
+core::dimension2d<u32> CGUITTFont::getDimension(const core::ustring& text) const
+{
+	// Get the maximum font height.  Unfortunately, we have to do this hack as
+	// Irrlicht will draw things wrong.  In FreeType, the font size is the
+	// maximum size for a single glyph, but that glyph may hang "under" the
+	// draw line, increasing the total font height to beyond the set size.
+	// Irrlicht does not understand this concept when drawing fonts.  Also, I
+	// add +1 to give it a 1 pixel blank border.  This makes things like
+	// tooltips look nicer.
+	s32 test1 = getHeightFromCharacter((uchar32_t)'g') + 1;
+	s32 test2 = getHeightFromCharacter((uchar32_t)'j') + 1;
+	s32 test3 = getHeightFromCharacter((uchar32_t)'_') + 1;
+	s32 max_font_height = core::max_(test1, core::max_(test2, test3));
+
+	core::dimension2d<u32> text_dimension(0, max_font_height);
+	core::dimension2d<u32> line(0, max_font_height);
+
+	uchar32_t previousChar = 0;
+	core::ustring::const_iterator iter = text.begin();
+	for (; !iter.atEnd(); ++iter)
+	{
+		uchar32_t p = *iter;
+		bool lineBreak = false;
+		if (p == '\r')	// Mac or Windows line breaks.
+		{
+			lineBreak = true;
+			if (*(iter + 1) == '\n')
+			{
+				++iter;
+				p = *iter;
+			}
+		}
+		else if (p == '\n')	// Unix line breaks.
+		{
+			lineBreak = true;
+		}
+
+		// Kerning.
+		core::vector2di k = getKerning(p, previousChar);
+		line.Width += k.X;
+		previousChar = p;
+
+		// Check for linebreak.
+		if (lineBreak)
+		{
+			previousChar = 0;
+			text_dimension.Height += line.Height;
+			if (text_dimension.Width < line.Width)
+				text_dimension.Width = line.Width;
+			line.Width = 0;
+			line.Height = max_font_height;
+			continue;
+		}
+		line.Width += getWidthFromCharacter(p);
+	}
+	if (text_dimension.Width < line.Width)
+		text_dimension.Width = line.Width;
+
+	return text_dimension;
+}
+
+inline u32 CGUITTFont::getWidthFromCharacter(wchar_t c) const
+{
+	return getWidthFromCharacter((uchar32_t)c);
+}
+
+inline u32 CGUITTFont::getWidthFromCharacter(uchar32_t c) const
+{
+	// Set the size of the face.
+	// This is because we cache faces and the face may have been set to a different size.
+	//FT_Set_Pixel_Sizes(tt_face, 0, size);
+
+	u32 n = getGlyphIndexByChar(c);
+	if (n > 0)
+	{
+		int w = Glyphs[n-1].advance.x / 64;
+		return w;
+	}
+	if (c >= 0x2000)
+		return (font_metrics.ascender / 64);
+	else return (font_metrics.ascender / 64) / 2;
+}
+
+inline u32 CGUITTFont::getHeightFromCharacter(wchar_t c) const
+{
+	return getHeightFromCharacter((uchar32_t)c);
+}
+
+inline u32 CGUITTFont::getHeightFromCharacter(uchar32_t c) const
+{
+	// Set the size of the face.
+	// This is because we cache faces and the face may have been set to a different size.
+	//FT_Set_Pixel_Sizes(tt_face, 0, size);
+
+	u32 n = getGlyphIndexByChar(c);
+	if (n > 0)
+	{
+		// Grab the true height of the character, taking into account underhanging glyphs.
+		s32 height = (font_metrics.ascender / 64) - Glyphs[n-1].offset.Y + Glyphs[n-1].source_rect.getHeight();
+		return height;
+	}
+	if (c >= 0x2000)
+		return (font_metrics.ascender / 64);
+	else return (font_metrics.ascender / 64) / 2;
+}
+
+u32 CGUITTFont::getGlyphIndexByChar(wchar_t c) const
+{
+	return getGlyphIndexByChar((uchar32_t)c);
+}
+
+u32 CGUITTFont::getGlyphIndexByChar(uchar32_t c) const
+{
+	// Get the glyph.
+	u32 glyph = FT_Get_Char_Index(tt_face, c);
+
+	// Check for a valid glyph.  If it is invalid, attempt to use the replacement character.
+	if (glyph == 0)
+		glyph = FT_Get_Char_Index(tt_face, core::unicode::UTF_REPLACEMENT_CHARACTER);
+
+	// If our glyph is already loaded, don't bother doing any batch loading code.
+	if (glyph != 0 && Glyphs[glyph - 1].isLoaded)
+		return glyph;
+
+	// Determine our batch loading positions.
+	u32 half_size = (batch_load_size / 2);
+	u32 start_pos = 0;
+	if (c > half_size) start_pos = c - half_size;
+	u32 end_pos = start_pos + batch_load_size;
+
+	// Load all our characters.
+	do
+	{
+		// Get the character we are going to load.
+		u32 char_index = FT_Get_Char_Index(tt_face, start_pos);
+
+		// If the glyph hasn't been loaded yet, do it now.
+		if (char_index)
+		{
+			SGUITTGlyph& glyph = Glyphs[char_index - 1];
+			if (!glyph.isLoaded)
+			{
+				glyph.preload(char_index, tt_face, Driver, size, load_flags);
+				Glyph_Pages[glyph.glyph_page]->pushGlyphToBePaged(&glyph);
+			}
+		}
+	}
+	while (++start_pos < end_pos);
+
+	// Return our original character.
+	return glyph;
+}
+
+s32 CGUITTFont::getCharacterFromPos(const wchar_t* text, s32 pixel_x) const
+{
+	return getCharacterFromPos(core::ustring(text), pixel_x);
+}
+
+s32 CGUITTFont::getCharacterFromPos(const core::ustring& text, s32 pixel_x) const
+{
+	s32 x = 0;
+	//s32 idx = 0;
+
+	u32 character = 0;
+	uchar32_t previousChar = 0;
+	core::ustring::const_iterator iter = text.begin();
+	while (!iter.atEnd())
+	{
+		uchar32_t c = *iter;
+		x += getWidthFromCharacter(c);
+
+		// Kerning.
+		core::vector2di k = getKerning(c, previousChar);
+		x += k.X;
+
+		if (x >= pixel_x)
+			return character;
+
+		previousChar = c;
+		++iter;
+		++character;
+	}
+
+	return -1;
+}
+
+void CGUITTFont::setKerningWidth(s32 kerning)
+{
+	GlobalKerningWidth = kerning;
+}
+
+void CGUITTFont::setKerningHeight(s32 kerning)
+{
+	GlobalKerningHeight = kerning;
+}
+
+s32 CGUITTFont::getKerningWidth(const wchar_t* thisLetter, const wchar_t* previousLetter) const
+{
+	if (tt_face == 0)
+		return GlobalKerningWidth;
+	if (thisLetter == 0 || previousLetter == 0)
+		return 0;
+
+	return getKerningWidth((uchar32_t)*thisLetter, (uchar32_t)*previousLetter);
+}
+
+s32 CGUITTFont::getKerningWidth(const uchar32_t thisLetter, const uchar32_t previousLetter) const
+{
+	// Return only the kerning width.
+	return getKerning(thisLetter, previousLetter).X;
+}
+
+s32 CGUITTFont::getKerningHeight() const
+{
+	// FreeType 2 currently doesn't return any height kerning information.
+	return GlobalKerningHeight;
+}
+
+core::vector2di CGUITTFont::getKerning(const wchar_t thisLetter, const wchar_t previousLetter) const
+{
+	return getKerning((uchar32_t)thisLetter, (uchar32_t)previousLetter);
+}
+
+core::vector2di CGUITTFont::getKerning(const uchar32_t thisLetter, const uchar32_t previousLetter) const
+{
+	if (tt_face == 0 || thisLetter == 0 || previousLetter == 0)
+		return core::vector2di();
+
+	// Set the size of the face.
+	// This is because we cache faces and the face may have been set to a different size.
+	FT_Set_Pixel_Sizes(tt_face, 0, size);
+
+	core::vector2di ret(GlobalKerningWidth, GlobalKerningHeight);
+
+	// If we don't have kerning, no point in continuing.
+	if (!FT_HAS_KERNING(tt_face))
+		return ret;
+
+	// Get the kerning information.
+	FT_Vector v;
+	FT_Get_Kerning(tt_face, getGlyphIndexByChar(previousLetter), getGlyphIndexByChar(thisLetter), FT_KERNING_DEFAULT, &v);
+
+	// If we have a scalable font, the return value will be in font points.
+	if (FT_IS_SCALABLE(tt_face))
+	{
+		// Font points, so divide by 64.
+		ret.X += (v.x / 64);
+		ret.Y += (v.y / 64);
+	}
+	else
+	{
+		// Pixel units.
+		ret.X += v.x;
+		ret.Y += v.y;
+	}
+	return ret;
+}
+
+void CGUITTFont::setInvisibleCharacters(const wchar_t *s)
+{
+	core::ustring us(s);
+	Invisible = us;
+}
+
+void CGUITTFont::setInvisibleCharacters(const core::ustring& s)
+{
+	Invisible = s;
+}
+
+video::IImage* CGUITTFont::createTextureFromChar(const uchar32_t& ch)
+{
+	u32 n = getGlyphIndexByChar(ch);
+	const SGUITTGlyph& glyph = Glyphs[n-1];
+	CGUITTGlyphPage* page = Glyph_Pages[glyph.glyph_page];
+
+	if (page->dirty)
+		page->updateTexture();
+
+	video::ITexture* tex = page->texture;
+
+	// Acquire a read-only lock of the corresponding page texture.
+	#if IRRLICHT_VERSION_MAJOR==1 && IRRLICHT_VERSION_MINOR>=8
+	void* ptr = tex->lock(video::ETLM_READ_ONLY);
+	#else
+	void* ptr = tex->lock(true);
+	#endif
+
+	video::ECOLOR_FORMAT format = tex->getColorFormat();
+	core::dimension2du tex_size = tex->getOriginalSize();
+	video::IImage* pageholder = Driver->createImageFromData(format, tex_size, ptr, true, false);
+
+	// Copy the image data out of the page texture.
+	core::dimension2du glyph_size(glyph.source_rect.getSize());
+	video::IImage* image = Driver->createImage(format, glyph_size);
+	pageholder->copyTo(image, core::position2di(0, 0), glyph.source_rect);
+
+	tex->unlock();
+	return image;
+}
+
+video::ITexture* CGUITTFont::getPageTextureByIndex(const u32& page_index) const
+{
+	if (page_index < Glyph_Pages.size())
+		return Glyph_Pages[page_index]->texture;
+	else
+		return 0;
+}
+
+void CGUITTFont::createSharedPlane()
+{
+	/*
+		2___3
+		|  /|
+		| / |	<-- plane mesh is like this, point 2 is (0,0), point 0 is (0, -1)
+		|/  |	<-- the texture coords of point 2 is (0,0, point 0 is (0, 1)
+		0---1
+	*/
+
+	using namespace core;
+	using namespace video;
+	using namespace scene;
+	S3DVertex vertices[4];
+	u16 indices[6] = {0,2,3,3,1,0};
+	vertices[0] = S3DVertex(vector3df(0,-1,0), vector3df(0,0,-1), SColor(255,255,255,255), vector2df(0,1));
+	vertices[1] = S3DVertex(vector3df(1,-1,0), vector3df(0,0,-1), SColor(255,255,255,255), vector2df(1,1));
+	vertices[2] = S3DVertex(vector3df(0, 0,0), vector3df(0,0,-1), SColor(255,255,255,255), vector2df(0,0));
+	vertices[3] = S3DVertex(vector3df(1, 0,0), vector3df(0,0,-1), SColor(255,255,255,255), vector2df(1,0));
+
+	SMeshBuffer* buf = new SMeshBuffer();
+	buf->append(vertices, 4, indices, 6);
+
+	shared_plane_.addMeshBuffer( buf );
+
+	shared_plane_ptr_ = &shared_plane_;
+	buf->drop(); //the addMeshBuffer method will grab it, so we can drop this ptr.
+}
+
+core::dimension2d<u32> CGUITTFont::getDimensionUntilEndOfLine(const wchar_t* p) const
+{
+	core::stringw s;
+	for (const wchar_t* temp = p; temp && *temp != '\0' && *temp != L'\r' && *temp != L'\n'; ++temp )
+		s.append(*temp);
+
+	return getDimension(s.c_str());
+}
+
+core::array<scene::ISceneNode*> CGUITTFont::addTextSceneNode(const wchar_t* text, scene::ISceneManager* smgr, scene::ISceneNode* parent, const video::SColor& color, bool center)
+{
+	using namespace core;
+	using namespace video;
+	using namespace scene;
+
+	array<scene::ISceneNode*> container;
+
+	if (!Driver || !smgr) return container;
+	if (!parent)
+		parent = smgr->addEmptySceneNode(smgr->getRootSceneNode(), -1);
+	// if you don't specify parent, then we add a empty node attached to the root node
+	// this is generally undesirable.
+
+	if (!shared_plane_ptr_) //this points to a static mesh that contains the plane
+		createSharedPlane(); //if it's not initialized, we create one.
+
+	dimension2d<s32> text_size(getDimension(text)); //convert from unsigned to signed.
+	vector3df start_point(0, 0, 0), offset;
+
+	/** NOTICE:
+		Because we are considering adding texts into 3D world, all Y axis vectors are inverted.
+	**/
+
+	// There's currently no "vertical center" concept when you apply text scene node to the 3D world.
+	if (center)
+	{
+		offset.X = start_point.X = -text_size.Width / 2.f;
+		offset.Y = start_point.Y = +text_size.Height/ 2.f;
+		offset.X += (text_size.Width - getDimensionUntilEndOfLine(text).Width) >> 1;
+	}
+
+	// the default font material
+	SMaterial mat;
+	mat.setFlag(video::EMF_LIGHTING, true);
+	mat.setFlag(video::EMF_ZWRITE_ENABLE, false);
+	mat.setFlag(video::EMF_NORMALIZE_NORMALS, true);
+	mat.ColorMaterial = video::ECM_NONE;
+	mat.MaterialType = use_transparency ? video::EMT_TRANSPARENT_ALPHA_CHANNEL : video::EMT_SOLID;
+	mat.MaterialTypeParam = 0.01f;
+	mat.DiffuseColor = color;
+
+	wchar_t current_char = 0, previous_char = 0;
+	u32 n = 0;
+
+	array<u32> glyph_indices;
+
+	while (*text)
+	{
+		current_char = *text;
+		bool line_break=false;
+		if (current_char == L'\r') // Mac or Windows breaks
+		{
+			line_break = true;
+			if (*(text + 1) == L'\n') // Windows line breaks.
+				current_char = *(++text);
+		}
+		else if (current_char == L'\n') // Unix breaks
+		{
+			line_break = true;
+		}
+
+		if (line_break)
+		{
+			previous_char = 0;
+			offset.Y -= tt_face->size->metrics.ascender / 64;
+			offset.X = start_point.X;
+			if (center)
+				offset.X += (text_size.Width - getDimensionUntilEndOfLine(text+1).Width) >> 1;
+			++text;
+		}
+		else
+		{
+			n = getGlyphIndexByChar(current_char);
+			if (n > 0)
+			{
+				glyph_indices.push_back( n );
+
+				// Store glyph size and offset informations.
+				SGUITTGlyph const& glyph = Glyphs[n-1];
+				u32 texw = glyph.source_rect.getWidth();
+				u32 texh = glyph.source_rect.getHeight();
+				s32 offx = glyph.offset.X;
+				s32 offy = (font_metrics.ascender / 64) - glyph.offset.Y;
+
+				// Apply kerning.
+				vector2di k = getKerning(current_char, previous_char);
+				offset.X += k.X;
+				offset.Y += k.Y;
+
+				vector3df current_pos(offset.X + offx, offset.Y - offy, 0);
+				dimension2d<u32> letter_size = dimension2d<u32>(texw, texh);
+
+				// Now we copy planes corresponding to the letter size.
+				IMeshManipulator* mani = smgr->getMeshManipulator();
+				IMesh* meshcopy = mani->createMeshCopy(shared_plane_ptr_);
+				#if IRRLICHT_VERSION_MAJOR==1 && IRRLICHT_VERSION_MINOR>=8
+				mani->scale(meshcopy, vector3df((f32)letter_size.Width, (f32)letter_size.Height, 1));
+				#else
+				mani->scaleMesh(meshcopy, vector3df((f32)letter_size.Width, (f32)letter_size.Height, 1));
+				#endif
+
+				ISceneNode* current_node = smgr->addMeshSceneNode(meshcopy, parent, -1, current_pos);
+				meshcopy->drop();
+
+				current_node->getMaterial(0) = mat;
+				current_node->setAutomaticCulling(EAC_OFF);
+				current_node->setIsDebugObject(true);  //so the picking won't have any effect on individual letter
+				//current_node->setDebugDataVisible(EDS_BBOX); //de-comment this when debugging
+
+				container.push_back(current_node);
+			}
+			offset.X += getWidthFromCharacter(current_char);
+			previous_char = current_char;
+			++text;
+		}
+	}
+
+	update_glyph_pages();
+	//only after we update the textures can we use the glyph page textures.
+
+	for (u32 i = 0; i < glyph_indices.size(); ++i)
+	{
+		u32 n = glyph_indices[i];
+		SGUITTGlyph const& glyph = Glyphs[n-1];
+		ITexture* current_tex = Glyph_Pages[glyph.glyph_page]->texture;
+		f32 page_texture_size = (f32)current_tex->getSize().Width;
+		//Now we calculate the UV position according to the texture size and the source rect.
+		//
+		//  2___3
+		//  |  /|
+		//  | / |	<-- plane mesh is like this, point 2 is (0,0), point 0 is (0, -1)
+		//  |/  |	<-- the texture coords of point 2 is (0,0, point 0 is (0, 1)
+		//  0---1
+		//
+		f32 u1 = glyph.source_rect.UpperLeftCorner.X / page_texture_size;
+		f32 u2 = u1 + (glyph.source_rect.getWidth() / page_texture_size);
+		f32 v1 = glyph.source_rect.UpperLeftCorner.Y / page_texture_size;
+		f32 v2 = v1 + (glyph.source_rect.getHeight() / page_texture_size);
+
+		//we can be quite sure that this is IMeshSceneNode, because we just added them in the above loop.
+		IMeshSceneNode* node = static_cast<IMeshSceneNode*>(container[i]);
+
+		S3DVertex* pv = static_cast<S3DVertex*>(node->getMesh()->getMeshBuffer(0)->getVertices());
+		//pv[0].TCoords.Y = pv[1].TCoords.Y = (letter_size.Height - 1) / static_cast<f32>(letter_size.Height);
+		//pv[1].TCoords.X = pv[3].TCoords.X = (letter_size.Width - 1)  / static_cast<f32>(letter_size.Width);
+		pv[0].TCoords = vector2df(u1, v2);
+		pv[1].TCoords = vector2df(u2, v2);
+		pv[2].TCoords = vector2df(u1, v1);
+		pv[3].TCoords = vector2df(u2, v1);
+
+		container[i]->getMaterial(0).setTexture(0, current_tex);
+	}
+
+	return container;
+}
+
+} // end namespace gui
+} // end namespace irr
diff --git a/src/cguittfont/CGUITTFont.h b/src/cguittfont/CGUITTFont.h
new file mode 100644
index 000000000..12e25e0f3
--- /dev/null
+++ b/src/cguittfont/CGUITTFont.h
@@ -0,0 +1,377 @@
+/*
+   CGUITTFont FreeType class for Irrlicht
+   Copyright (c) 2009-2010 John Norman
+
+   This software is provided 'as-is', without any express or implied
+   warranty. In no event will the authors be held liable for any
+   damages arising from the use of this software.
+
+   Permission is granted to anyone to use this software for any
+   purpose, including commercial applications, and to alter it and
+   redistribute it freely, subject to the following restrictions:
+
+   1. The origin of this software must not be misrepresented; you
+      must not claim that you wrote the original software. If you use
+      this software in a product, an acknowledgment in the product
+      documentation would be appreciated but is not required.
+
+   2. Altered source versions must be plainly marked as such, and
+      must not be misrepresented as being the original software.
+
+   3. This notice may not be removed or altered from any source
+      distribution.
+
+   The original version of this class can be located at:
+   http://irrlicht.suckerfreegames.com/
+
+   John Norman
+   john@suckerfreegames.com
+*/
+
+#ifndef __C_GUI_TTFONT_H_INCLUDED__
+#define __C_GUI_TTFONT_H_INCLUDED__
+
+#include <irrlicht.h>
+#include <ft2build.h>
+#include FT_FREETYPE_H
+
+namespace irr
+{
+namespace gui
+{
+	struct SGUITTFace;
+	class CGUITTFont;
+
+	//! Class to assist in deleting glyphs.
+	class CGUITTAssistDelete
+	{
+		public:
+			template <class T, typename TAlloc>
+			static void Delete(core::array<T, TAlloc>& a)
+			{
+				TAlloc allocator;
+				allocator.deallocate(a.pointer());
+			}
+	};
+
+	//! Structure representing a single TrueType glyph.
+	struct SGUITTGlyph
+	{
+		//! Constructor.
+		SGUITTGlyph() : isLoaded(false), glyph_page(0), surface(0), parent(0) {}
+
+		//! Destructor.
+		~SGUITTGlyph() { unload(); }
+
+		//! Preload the glyph.
+		//!	The preload process occurs when the program tries to cache the glyph from FT_Library.
+		//! However, it simply defines the SGUITTGlyph's properties and will only create the page
+		//! textures if necessary.  The actual creation of the textures should only occur right
+		//! before the batch draw call.
+		void preload(u32 char_index, FT_Face face, video::IVideoDriver* driver, u32 font_size, const FT_Int32 loadFlags);
+
+		//! Unloads the glyph.
+		void unload();
+
+		//! Creates the IImage object from the FT_Bitmap.
+		video::IImage* createGlyphImage(const FT_Bitmap& bits, video::IVideoDriver* driver) const;
+
+		//! If true, the glyph has been loaded.
+		bool isLoaded;
+
+		//! The page the glyph is on.
+		u32 glyph_page;
+
+		//! The source rectangle for the glyph.
+		core::recti source_rect;
+
+		//! The offset of glyph when drawn.
+		core::vector2di offset;
+
+		//! Glyph advance information.
+		FT_Vector advance;
+
+		//! This is just the temporary image holder.  After this glyph is paged,
+		//! it will be dropped.
+		mutable video::IImage* surface;
+
+		//! The pointer pointing to the parent (CGUITTFont)
+		CGUITTFont* parent;
+	};
+
+	//! Holds a sheet of glyphs.
+	class CGUITTGlyphPage
+	{
+		public:
+			CGUITTGlyphPage(video::IVideoDriver* Driver, const io::path& texture_name) :texture(0), available_slots(0), used_slots(0), dirty(false), driver(Driver), name(texture_name) {}
+			~CGUITTGlyphPage()
+			{
+				if (texture)
+				{
+					if (driver)
+						driver->removeTexture(texture);
+					else texture->drop();
+				}
+			}
+
+			//! Create the actual page texture,
+			bool createPageTexture(const u8& pixel_mode, const core::dimension2du& texture_size)
+			{
+				if( texture )
+					return false;
+
+				bool flgmip = driver->getTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS);
+				driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, false);
+
+				// Set the texture color format.
+				switch (pixel_mode)
+				{
+					case FT_PIXEL_MODE_MONO:
+						texture = driver->addTexture(texture_size, name, video::ECF_A1R5G5B5);
+						break;
+					case FT_PIXEL_MODE_GRAY:
+					default:
+						texture = driver->addTexture(texture_size, name, video::ECF_A8R8G8B8);
+						break;
+				}
+
+				// Restore our texture creation flags.
+				driver->setTextureCreationFlag(video::ETCF_CREATE_MIP_MAPS, flgmip);
+				return texture ? true : false;
+			}
+
+			//! Add the glyph to a list of glyphs to be paged.
+			//! This collection will be cleared after updateTexture is called.
+			void pushGlyphToBePaged(const SGUITTGlyph* glyph)
+			{
+				glyph_to_be_paged.push_back(glyph);
+			}
+
+			//! Updates the texture atlas with new glyphs.
+			void updateTexture()
+			{
+				if (!dirty) return;
+
+				void* ptr = texture->lock();
+				video::ECOLOR_FORMAT format = texture->getColorFormat();
+				core::dimension2du size = texture->getOriginalSize();
+				video::IImage* pageholder = driver->createImageFromData(format, size, ptr, true, false);
+
+				for (u32 i = 0; i < glyph_to_be_paged.size(); ++i)
+				{
+					const SGUITTGlyph* glyph = glyph_to_be_paged[i];
+					if (glyph && glyph->isLoaded)
+					{
+						if (glyph->surface)
+						{
+							glyph->surface->copyTo(pageholder, glyph->source_rect.UpperLeftCorner);
+							glyph->surface->drop();
+							glyph->surface = 0;
+						}
+						else
+						{
+							; // TODO: add error message?
+							//currently, if we failed to create the image, just ignore this operation.
+						}
+					}
+				}
+
+				pageholder->drop();
+				texture->unlock();
+				glyph_to_be_paged.clear();
+				dirty = false;
+			}
+
+			video::ITexture* texture;
+			u32 available_slots;
+			u32 used_slots;
+			bool dirty;
+
+			core::array<core::vector2di> render_positions;
+			core::array<core::recti> render_source_rects;
+
+		private:
+			core::array<const SGUITTGlyph*> glyph_to_be_paged;
+			video::IVideoDriver* driver;
+			io::path name;
+	};
+
+	//! Class representing a TrueType font.
+	class CGUITTFont : public IGUIFont
+	{
+		public:
+			//! Creates a new TrueType font and returns a pointer to it.  The pointer must be drop()'ed when finished.
+			//! \param env The IGUIEnvironment the font loads out of.
+			//! \param filename The filename of the font.
+			//! \param size The size of the font glyphs in pixels.  Since this is the size of the individual glyphs, the true height of the font may change depending on the characters used.
+			//! \param antialias set the use_monochrome (opposite to antialias) flag
+			//! \param transparency set the use_transparency flag
+			//! \return Returns a pointer to a CGUITTFont.  Will return 0 if the font failed to load.
+			static CGUITTFont* createTTFont(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
+			static CGUITTFont* createTTFont(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
+			static CGUITTFont* create(IGUIEnvironment *env, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
+			static CGUITTFont* create(IrrlichtDevice *device, const io::path& filename, const u32 size, const bool antialias = true, const bool transparency = true);
+
+			//! Destructor
+			virtual ~CGUITTFont();
+
+			//! Sets the amount of glyphs to batch load.
+			virtual void setBatchLoadSize(u32 batch_size) { batch_load_size = batch_size; }
+
+			//! Sets the maximum texture size for a page of glyphs.
+			virtual void setMaxPageTextureSize(const core::dimension2du& texture_size) { max_page_texture_size = texture_size; }
+
+			//! Get the font size.
+			virtual u32 getFontSize() const { return size; }
+
+			//! Check the font's transparency.
+			virtual bool isTransparent() const { return use_transparency; }
+
+			//! Check if the font auto-hinting is enabled.
+			//! Auto-hinting is FreeType's built-in font hinting engine.
+			virtual bool useAutoHinting() const { return use_auto_hinting; }
+
+			//! Check if the font hinting is enabled.
+			virtual bool useHinting()	 const { return use_hinting; }
+
+			//! Check if the font is being loaded as a monochrome font.
+			//! The font can either be a 256 color grayscale font, or a 2 color monochrome font.
+			virtual bool useMonochrome()  const { return use_monochrome; }
+
+			//! Tells the font to allow transparency when rendering.
+			//! Default: true.
+			//! \param flag If true, the font draws using transparency.
+			virtual void setTransparency(const bool flag);
+
+			//! Tells the font to use monochrome rendering.
+			//! Default: false.
+			//! \param flag If true, the font draws using a monochrome image.  If false, the font uses a grayscale image.
+			virtual void setMonochrome(const bool flag);
+
+			//! Enables or disables font hinting.
+			//! Default: Hinting and auto-hinting true.
+			//! \param enable If false, font hinting is turned off. If true, font hinting is turned on.
+			//! \param enable_auto_hinting If true, FreeType uses its own auto-hinting algorithm.  If false, it tries to use the algorithm specified by the font.
+			virtual void setFontHinting(const bool enable, const bool enable_auto_hinting = true);
+
+			//! Draws some text and clips it to the specified rectangle if wanted.
+			virtual void draw(const core::stringw& text, const core::rect<s32>& position,
+				video::SColor color, bool hcenter=false, bool vcenter=false,
+				const core::rect<s32>* clip=0);
+
+			//! Returns the dimension of a character produced by this font.
+			virtual core::dimension2d<u32> getCharDimension(const wchar_t ch) const;
+
+			//! Returns the dimension of a text string.
+			virtual core::dimension2d<u32> getDimension(const wchar_t* text) const;
+			virtual core::dimension2d<u32> getDimension(const core::ustring& text) const;
+
+			//! Calculates the index of the character in the text which is on a specific position.
+			virtual s32 getCharacterFromPos(const wchar_t* text, s32 pixel_x) const;
+			virtual s32 getCharacterFromPos(const core::ustring& text, s32 pixel_x) const;
+
+			//! Sets global kerning width for the font.
+			virtual void setKerningWidth(s32 kerning);
+
+			//! Sets global kerning height for the font.
+			virtual void setKerningHeight(s32 kerning);
+
+			//! Gets kerning values (distance between letters) for the font. If no parameters are provided,
+			virtual s32 getKerningWidth(const wchar_t* thisLetter=0, const wchar_t* previousLetter=0) const;
+			virtual s32 getKerningWidth(const uchar32_t thisLetter=0, const uchar32_t previousLetter=0) const;
+
+			//! Returns the distance between letters
+			virtual s32 getKerningHeight() const;
+
+			//! Define which characters should not be drawn by the font.
+			virtual void setInvisibleCharacters(const wchar_t *s);
+			virtual void setInvisibleCharacters(const core::ustring& s);
+
+			//! Get the last glyph page if there's still available slots.
+			//! If not, it will return zero.
+			CGUITTGlyphPage* getLastGlyphPage() const;
+
+			//! Create a new glyph page texture.
+			//! \param pixel_mode the pixel mode defined by FT_Pixel_Mode
+			//should be better typed. fix later.
+			CGUITTGlyphPage* createGlyphPage(const u8& pixel_mode);
+
+			//! Get the last glyph page's index.
+			u32 getLastGlyphPageIndex() const { return Glyph_Pages.size() - 1; }
+
+			//! Create corresponding character's software image copy from the font,
+			//! so you can use this data just like any ordinary video::IImage.
+			//! \param ch The character you need
+			virtual video::IImage* createTextureFromChar(const uchar32_t& ch);
+
+			//! This function is for debugging mostly. If the page doesn't exist it returns zero.
+			//! \param page_index Simply return the texture handle of a given page index.
+			virtual video::ITexture* getPageTextureByIndex(const u32& page_index) const;
+
+			//! Add a list of scene nodes generated by putting font textures on the 3D planes.
+			virtual core::array<scene::ISceneNode*> addTextSceneNode
+				(const wchar_t* text, scene::ISceneManager* smgr, scene::ISceneNode* parent = 0,
+				 const video::SColor& color = video::SColor(255, 0, 0, 0), bool center = false );
+
+		protected:
+			bool use_monochrome;
+			bool use_transparency;
+			bool use_hinting;
+			bool use_auto_hinting;
+			u32 size;
+			u32 batch_load_size;
+			core::dimension2du max_page_texture_size;
+
+		private:
+			// Manages the FreeType library.
+			static FT_Library c_library;
+			static core::map<io::path, SGUITTFace*> c_faces;
+			static bool c_libraryLoaded;
+			static scene::IMesh* shared_plane_ptr_;
+			static scene::SMesh  shared_plane_;
+
+			CGUITTFont(IGUIEnvironment *env);
+			bool load(const io::path& filename, const u32 size, const bool antialias, const bool transparency);
+			void reset_images();
+			void update_glyph_pages() const;
+			void update_load_flags()
+			{
+				// Set up our loading flags.
+				load_flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER;
+				if (!useHinting()) load_flags |= FT_LOAD_NO_HINTING;
+				if (!useAutoHinting()) load_flags |= FT_LOAD_NO_AUTOHINT;
+				if (useMonochrome()) load_flags |= FT_LOAD_MONOCHROME | FT_LOAD_TARGET_MONO | FT_RENDER_MODE_MONO;
+				else load_flags |= FT_LOAD_TARGET_NORMAL;
+			}
+			u32 getWidthFromCharacter(wchar_t c) const;
+			u32 getWidthFromCharacter(uchar32_t c) const;
+			u32 getHeightFromCharacter(wchar_t c) const;
+			u32 getHeightFromCharacter(uchar32_t c) const;
+			u32 getGlyphIndexByChar(wchar_t c) const;
+			u32 getGlyphIndexByChar(uchar32_t c) const;
+			core::vector2di getKerning(const wchar_t thisLetter, const wchar_t previousLetter) const;
+			core::vector2di getKerning(const uchar32_t thisLetter, const uchar32_t previousLetter) const;
+			core::dimension2d<u32> getDimensionUntilEndOfLine(const wchar_t* p) const;
+
+			void createSharedPlane();
+
+			irr::IrrlichtDevice* Device;
+			gui::IGUIEnvironment* Environment;
+			video::IVideoDriver* Driver;
+			io::path filename;
+			FT_Face tt_face;
+			FT_Size_Metrics font_metrics;
+			FT_Int32 load_flags;
+
+			mutable core::array<CGUITTGlyphPage*> Glyph_Pages;
+			mutable core::array<SGUITTGlyph> Glyphs;
+
+			s32 GlobalKerningWidth;
+			s32 GlobalKerningHeight;
+			core::ustring Invisible;
+	};
+
+} // end namespace gui
+} // end namespace irr
+
+#endif // __C_GUI_TTFONT_H_INCLUDED__
diff --git a/src/cguittfont/CMakeLists.txt b/src/cguittfont/CMakeLists.txt
new file mode 100644
index 000000000..94d061462
--- /dev/null
+++ b/src/cguittfont/CMakeLists.txt
@@ -0,0 +1,17 @@
+include_directories(
+  ${IRRLICHT_INCLUDE_DIR}
+  ${FREETYPE_INCLUDE_DIRS}
+)
+
+# CGUITTFont authors, y u no include headers you use?
+#   Do not add CGUITTFont.cpp to the line below.
+#   xCGUITTFont.cpp is a wrapper file that includes
+#   additional required headers.
+add_library(cguittfont xCGUITTFont.cpp)
+
+target_link_libraries(
+  cguittfont
+  ${IRRLICHT_LIBRARY}
+  ${FREETYPE_LIBRARY}
+  ${ZLIB_LIBRARIES}  # needed by freetype, repeated here for safety
+)
diff --git a/src/cguittfont/irrUString.h b/src/cguittfont/irrUString.h
new file mode 100644
index 000000000..f41fa1f7b
--- /dev/null
+++ b/src/cguittfont/irrUString.h
@@ -0,0 +1,3877 @@
+/*
+   Basic Unicode string class for Irrlicht.
+   Copyright (c) 2009-2011 John Norman
+
+   This software is provided 'as-is', without any express or implied
+   warranty. In no event will the authors be held liable for any
+   damages arising from the use of this software.
+
+   Permission is granted to anyone to use this software for any
+   purpose, including commercial applications, and to alter it and
+   redistribute it freely, subject to the following restrictions:
+
+   1. The origin of this software must not be misrepresented; you
+      must not claim that you wrote the original software. If you use
+      this software in a product, an acknowledgment in the product
+      documentation would be appreciated but is not required.
+
+   2. Altered source versions must be plainly marked as such, and
+      must not be misrepresented as being the original software.
+
+   3. This notice may not be removed or altered from any source
+      distribution.
+
+   The original version of this class can be located at:
+   http://irrlicht.suckerfreegames.com/
+
+   John Norman
+   john@suckerfreegames.com
+*/
+
+#ifndef __IRR_USTRING_H_INCLUDED__
+#define __IRR_USTRING_H_INCLUDED__
+
+#if (__cplusplus > 199711L) || (_MSC_VER >= 1600) || defined(__GXX_EXPERIMENTAL_CXX0X__)
+#	define USTRING_CPP0X
+#	if defined(__GXX_EXPERIMENTAL_CXX0X__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)))
+#		define USTRING_CPP0X_NEWLITERALS
+#	endif
+#endif
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef USTRING_CPP0X
+#	include <utility>
+#endif
+
+#ifndef USTRING_NO_STL
+#	include <string>
+#	include <iterator>
+#	include <ostream>
+#endif
+
+#include "irrTypes.h"
+#include "irrAllocator.h"
+#include "irrArray.h"
+#include "irrMath.h"
+#include "irrString.h"
+#include "path.h"
+
+//! UTF-16 surrogate start values.
+static const irr::u16 UTF16_HI_SURROGATE = 0xD800;
+static const irr::u16 UTF16_LO_SURROGATE = 0xDC00;
+
+//! Is a UTF-16 code point a surrogate?
+#define UTF16_IS_SURROGATE(c)		(((c) & 0xF800) == 0xD800)
+#define UTF16_IS_SURROGATE_HI(c)	(((c) & 0xFC00) == 0xD800)
+#define UTF16_IS_SURROGATE_LO(c)	(((c) & 0xFC00) == 0xDC00)
+
+
+namespace irr
+{
+
+	// Define our character types.
+#ifdef USTRING_CPP0X_NEWLITERALS	// C++0x
+	typedef char32_t uchar32_t;
+	typedef char16_t uchar16_t;
+	typedef char uchar8_t;
+#else
+	typedef u32 uchar32_t;
+	typedef u16 uchar16_t;
+	typedef u8 uchar8_t;
+#endif
+
+namespace core
+{
+
+namespace unicode
+{
+
+//! The unicode replacement character.  Used to replace invalid characters.
+const irr::u16 UTF_REPLACEMENT_CHARACTER = 0xFFFD;
+
+//! Convert a UTF-16 surrogate pair into a UTF-32 character.
+//! \param high The high value of the pair.
+//! \param low The low value of the pair.
+//! \return The UTF-32 character expressed by the surrogate pair.
+inline uchar32_t toUTF32(uchar16_t high, uchar16_t low)
+{
+	// Convert the surrogate pair into a single UTF-32 character.
+	uchar32_t x = ((high & ((1 << 6) -1)) << 10) | (low & ((1 << 10) -1));
+	uchar32_t wu = ((high >> 6) & ((1 << 5) - 1)) + 1;
+	return (wu << 16) | x;
+}
+
+//! Swaps the endianness of a 16-bit value.
+//! \return The new value.
+inline uchar16_t swapEndian16(const uchar16_t& c)
+{
+	return ((c >> 8) & 0x00FF) | ((c << 8) & 0xFF00);
+}
+
+//! Swaps the endianness of a 32-bit value.
+//! \return The new value.
+inline uchar32_t swapEndian32(const uchar32_t& c)
+{
+	return  ((c >> 24) & 0x000000FF) |
+			((c >> 8)  & 0x0000FF00) |
+			((c << 8)  & 0x00FF0000) |
+			((c << 24) & 0xFF000000);
+}
+
+//! The Unicode byte order mark.
+const u16 BOM = 0xFEFF;
+
+//! The size of the Unicode byte order mark in terms of the Unicode character size.
+const u8 BOM_UTF8_LEN = 3;
+const u8 BOM_UTF16_LEN = 1;
+const u8 BOM_UTF32_LEN = 1;
+
+//! Unicode byte order marks for file operations.
+const u8 BOM_ENCODE_UTF8[3] = { 0xEF, 0xBB, 0xBF };
+const u8 BOM_ENCODE_UTF16_BE[2] = { 0xFE, 0xFF };
+const u8 BOM_ENCODE_UTF16_LE[2] = { 0xFF, 0xFE };
+const u8 BOM_ENCODE_UTF32_BE[4] = { 0x00, 0x00, 0xFE, 0xFF };
+const u8 BOM_ENCODE_UTF32_LE[4] = { 0xFF, 0xFE, 0x00, 0x00 };
+
+//! The size in bytes of the Unicode byte marks for file operations.
+const u8 BOM_ENCODE_UTF8_LEN = 3;
+const u8 BOM_ENCODE_UTF16_LEN = 2;
+const u8 BOM_ENCODE_UTF32_LEN = 4;
+
+//! Unicode encoding type.
+enum EUTF_ENCODE
+{
+	EUTFE_NONE		= 0,
+	EUTFE_UTF8,
+	EUTFE_UTF16,
+	EUTFE_UTF16_LE,
+	EUTFE_UTF16_BE,
+	EUTFE_UTF32,
+	EUTFE_UTF32_LE,
+	EUTFE_UTF32_BE
+};
+
+//! Unicode endianness.
+enum EUTF_ENDIAN
+{
+	EUTFEE_NATIVE	= 0,
+	EUTFEE_LITTLE,
+	EUTFEE_BIG
+};
+
+//! Returns the specified unicode byte order mark in a byte array.
+//! The byte order mark is the first few bytes in a text file that signifies its encoding.
+/** \param mode The Unicode encoding method that we want to get the byte order mark for.
+		If EUTFE_UTF16 or EUTFE_UTF32 is passed, it uses the native system endianness. **/
+//! \return An array that contains a byte order mark.
+inline core::array<u8> getUnicodeBOM(EUTF_ENCODE mode)
+{
+#define COPY_ARRAY(source, size) \
+	memcpy(ret.pointer(), source, size); \
+	ret.set_used(size)
+
+	core::array<u8> ret(4);
+	switch (mode)
+	{
+		case EUTFE_UTF8:
+			COPY_ARRAY(BOM_ENCODE_UTF8, BOM_ENCODE_UTF8_LEN);
+			break;
+		case EUTFE_UTF16:
+			#ifdef __BIG_ENDIAN__
+				COPY_ARRAY(BOM_ENCODE_UTF16_BE, BOM_ENCODE_UTF16_LEN);
+			#else
+				COPY_ARRAY(BOM_ENCODE_UTF16_LE, BOM_ENCODE_UTF16_LEN);
+			#endif
+			break;
+		case EUTFE_UTF16_BE:
+			COPY_ARRAY(BOM_ENCODE_UTF16_BE, BOM_ENCODE_UTF16_LEN);
+			break;
+		case EUTFE_UTF16_LE:
+			COPY_ARRAY(BOM_ENCODE_UTF16_LE, BOM_ENCODE_UTF16_LEN);
+			break;
+		case EUTFE_UTF32:
+			#ifdef __BIG_ENDIAN__
+				COPY_ARRAY(BOM_ENCODE_UTF32_BE, BOM_ENCODE_UTF32_LEN);
+			#else
+				COPY_ARRAY(BOM_ENCODE_UTF32_LE, BOM_ENCODE_UTF32_LEN);
+			#endif
+			break;
+		case EUTFE_UTF32_BE:
+			COPY_ARRAY(BOM_ENCODE_UTF32_BE, BOM_ENCODE_UTF32_LEN);
+			break;
+		case EUTFE_UTF32_LE:
+			COPY_ARRAY(BOM_ENCODE_UTF32_LE, BOM_ENCODE_UTF32_LEN);
+			break;
+	}
+	return ret;
+
+#undef COPY_ARRAY
+}
+
+//! Detects if the given data stream starts with a unicode BOM.
+//! \param data The data stream to check.
+//! \return The unicode BOM associated with the data stream, or EUTFE_NONE if none was found.
+inline EUTF_ENCODE determineUnicodeBOM(const char* data)
+{
+	if (memcmp(data, BOM_ENCODE_UTF8, 3) == 0) return EUTFE_UTF8;
+	if (memcmp(data, BOM_ENCODE_UTF16_BE, 2) == 0) return EUTFE_UTF16_BE;
+	if (memcmp(data, BOM_ENCODE_UTF16_LE, 2) == 0) return EUTFE_UTF16_LE;
+	if (memcmp(data, BOM_ENCODE_UTF32_BE, 4) == 0) return EUTFE_UTF32_BE;
+	if (memcmp(data, BOM_ENCODE_UTF32_LE, 4) == 0) return EUTFE_UTF32_LE;
+	return EUTFE_NONE;
+}
+
+} // end namespace unicode
+
+
+//! UTF-16 string class.
+template <typename TAlloc = irrAllocator<uchar16_t> >
+class ustring16
+{
+public:
+
+	///------------------///
+	/// iterator classes ///
+	///------------------///
+
+	//! Access an element in a unicode string, allowing one to change it.
+	class _ustring16_iterator_access
+	{
+		public:
+			_ustring16_iterator_access(const ustring16<TAlloc>* s, u32 p) : ref(s), pos(p) {}
+
+			//! Allow the class to be interpreted as a single UTF-32 character.
+			operator uchar32_t() const
+			{
+				return _get();
+			}
+
+			//! Allow one to change the character in the unicode string.
+			//! \param c The new character to use.
+			//! \return Myself.
+			_ustring16_iterator_access& operator=(const uchar32_t c)
+			{
+				_set(c);
+				return *this;
+			}
+			
+			//! Increments the value by 1.
+			//! \return Myself.
+			_ustring16_iterator_access& operator++()
+			{
+				_set(_get() + 1);
+				return *this;
+			}
+
+			//! Increments the value by 1, returning the old value.
+			//! \return A unicode character.
+			uchar32_t operator++(int)
+			{
+				uchar32_t old = _get();
+				_set(old + 1);
+				return old;
+			}
+
+			//! Decrements the value by 1.
+			//! \return Myself.
+			_ustring16_iterator_access& operator--()
+			{
+				_set(_get() - 1);
+				return *this;
+			}
+
+			//! Decrements the value by 1, returning the old value.
+			//! \return A unicode character.
+			uchar32_t operator--(int)
+			{
+				uchar32_t old = _get();
+				_set(old - 1);
+				return old;
+			}
+
+			//! Adds to the value by a specified amount.
+			//! \param val The amount to add to this character.
+			//! \return Myself.
+			_ustring16_iterator_access& operator+=(int val)
+			{
+				_set(_get() + val);
+				return *this;
+			}
+
+			//! Subtracts from the value by a specified amount.
+			//! \param val The amount to subtract from this character.
+			//! \return Myself.
+			_ustring16_iterator_access& operator-=(int val)
+			{
+				_set(_get() - val);
+				return *this;
+			}
+
+			//! Multiples the value by a specified amount.
+			//! \param val The amount to multiply this character by.
+			//! \return Myself.
+			_ustring16_iterator_access& operator*=(int val)
+			{
+				_set(_get() * val);
+				return *this;
+			}
+
+			//! Divides the value by a specified amount.
+			//! \param val The amount to divide this character by.
+			//! \return Myself.
+			_ustring16_iterator_access& operator/=(int val)
+			{
+				_set(_get() / val);
+				return *this;
+			}
+
+			//! Modulos the value by a specified amount.
+			//! \param val The amount to modulo this character by.
+			//! \return Myself.
+			_ustring16_iterator_access& operator%=(int val)
+			{
+				_set(_get() % val);
+				return *this;
+			}
+
+			//! Adds to the value by a specified amount.
+			//! \param val The amount to add to this character.
+			//! \return A unicode character.
+			uchar32_t operator+(int val) const
+			{
+				return _get() + val;
+			}
+
+			//! Subtracts from the value by a specified amount.
+			//! \param val The amount to subtract from this character.
+			//! \return A unicode character.
+			uchar32_t operator-(int val) const
+			{
+				return _get() - val;
+			}
+
+			//! Multiplies the value by a specified amount.
+			//! \param val The amount to multiply this character by.
+			//! \return A unicode character.
+			uchar32_t operator*(int val) const
+			{
+				return _get() * val;
+			}
+
+			//! Divides the value by a specified amount.
+			//! \param val The amount to divide this character by.
+			//! \return A unicode character.
+			uchar32_t operator/(int val) const
+			{
+				return _get() / val;
+			}
+
+			//! Modulos the value by a specified amount.
+			//! \param val The amount to modulo this character by.
+			//! \return A unicode character.
+			uchar32_t operator%(int val) const
+			{
+				return _get() % val;
+			}
+
+		private:
+			//! Gets a uchar32_t from our current position.
+			uchar32_t _get() const
+			{
+				const uchar16_t* a = ref->c_str();
+				if (!UTF16_IS_SURROGATE(a[pos]))
+					return static_cast<uchar32_t>(a[pos]);
+				else
+				{
+					if (pos + 1 >= ref->size_raw())
+						return 0;
+
+					return unicode::toUTF32(a[pos], a[pos + 1]);
+				}
+			}
+			
+			//! Sets a uchar32_t at our current position.
+			void _set(uchar32_t c)
+			{
+				ustring16<TAlloc>* ref2 = const_cast<ustring16<TAlloc>*>(ref);
+				const uchar16_t* a = ref2->c_str();
+				if (c > 0xFFFF)
+				{
+					// c will be multibyte, so split it up into the high and low surrogate pairs.
+					uchar16_t x = static_cast<uchar16_t>(c);
+					uchar16_t vh = UTF16_HI_SURROGATE | ((((c >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10);
+					uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1));
+
+					// If the previous position was a surrogate pair, just replace them.  Else, insert the low pair.
+					if (UTF16_IS_SURROGATE_HI(a[pos]) && pos + 1 != ref2->size_raw())
+						ref2->replace_raw(vl, static_cast<u32>(pos) + 1);
+					else ref2->insert_raw(vl, static_cast<u32>(pos) + 1);
+
+					ref2->replace_raw(vh, static_cast<u32>(pos));
+				}
+				else
+				{
+					// c will be a single byte.
+					uchar16_t vh = static_cast<uchar16_t>(c);
+
+					// If the previous position was a surrogate pair, remove the extra byte.
+					if (UTF16_IS_SURROGATE_HI(a[pos]))
+						ref2->erase_raw(static_cast<u32>(pos) + 1);
+
+					ref2->replace_raw(vh, static_cast<u32>(pos));
+				}
+			}
+
+			const ustring16<TAlloc>* ref;
+			u32 pos;
+	};
+	typedef typename ustring16<TAlloc>::_ustring16_iterator_access access;
+
+
+	//! Iterator to iterate through a UTF-16 string.
+#ifndef USTRING_NO_STL
+	class _ustring16_const_iterator : public std::iterator<
+		std::bidirectional_iterator_tag,	// iterator_category
+		access,								// value_type
+		ptrdiff_t,							// difference_type
+		const access,						// pointer
+		const access						// reference
+	>
+#else
+	class _ustring16_const_iterator
+#endif
+	{
+		public:
+			typedef _ustring16_const_iterator _Iter;
+			typedef std::iterator<std::bidirectional_iterator_tag, access, ptrdiff_t, const access, const access> _Base;
+			typedef const access const_pointer;
+			typedef const access const_reference;
+
+#ifndef USTRING_NO_STL
+			typedef typename _Base::value_type value_type;
+			typedef typename _Base::difference_type difference_type;
+			typedef typename _Base::difference_type distance_type;
+			typedef typename _Base::pointer pointer;
+			typedef const_reference reference;
+#else
+			typedef access value_type;
+			typedef u32 difference_type;
+			typedef u32 distance_type;
+			typedef const_pointer pointer;
+			typedef const_reference reference;
+#endif
+
+			//! Constructors.
+			_ustring16_const_iterator(const _Iter& i) : ref(i.ref), pos(i.pos) {}
+			_ustring16_const_iterator(const ustring16<TAlloc>& s) : ref(&s), pos(0) {}
+			_ustring16_const_iterator(const ustring16<TAlloc>& s, const u32 p) : ref(&s), pos(0)
+			{
+				if (ref->size_raw() == 0 || p == 0)
+					return;
+
+				// Go to the appropriate position.
+				u32 i = p;
+				u32 sr = ref->size_raw();
+				const uchar16_t* a = ref->c_str();
+				while (i != 0 && pos < sr)
+				{
+					if (UTF16_IS_SURROGATE_HI(a[pos]))
+						pos += 2;
+					else ++pos;
+					--i;
+				}
+			}
+
+			//! Test for equalness.
+			bool operator==(const _Iter& iter) const
+			{
+				if (ref == iter.ref && pos == iter.pos)
+					return true;
+				return false;
+			}
+
+			//! Test for unequalness.
+			bool operator!=(const _Iter& iter) const
+			{
+				if (ref != iter.ref || pos != iter.pos)
+					return true;
+				return false;
+			}
+
+			//! Switch to the next full character in the string.
+			_Iter& operator++()
+			{	// ++iterator
+				if (pos == ref->size_raw()) return *this;
+				const uchar16_t* a = ref->c_str();
+				if (UTF16_IS_SURROGATE_HI(a[pos]))
+					pos += 2;			// TODO: check for valid low surrogate?
+				else ++pos;
+				if (pos > ref->size_raw()) pos = ref->size_raw();
+				return *this;
+			}
+
+			//! Switch to the next full character in the string, returning the previous position.
+			_Iter operator++(int)
+			{	// iterator++
+				_Iter _tmp(*this);
+				++*this;
+				return _tmp;
+			}
+
+			//! Switch to the previous full character in the string.
+			_Iter& operator--()
+			{	// --iterator
+				if (pos == 0) return *this;
+				const uchar16_t* a = ref->c_str();
+				--pos;
+				if (UTF16_IS_SURROGATE_LO(a[pos]) && pos != 0)	// low surrogate, go back one more.
+					--pos;
+				return *this;
+			}
+
+			//! Switch to the previous full character in the string, returning the previous position.
+			_Iter operator--(int)
+			{	// iterator--
+				_Iter _tmp(*this);
+				--*this;
+				return _tmp;
+			}
+
+			//! Advance a specified number of full characters in the string.
+			//! \return Myself.
+			_Iter& operator+=(const difference_type v)
+			{
+				if (v == 0) return *this;
+				if (v < 0) return operator-=(v * -1);
+
+				if (pos >= ref->size_raw())
+					return *this;
+
+				// Go to the appropriate position.
+				// TODO: Don't force u32 on an x64 OS.  Make it agnostic.
+				u32 i = (u32)v;
+				u32 sr = ref->size_raw();
+				const uchar16_t* a = ref->c_str();
+				while (i != 0 && pos < sr)
+				{
+					if (UTF16_IS_SURROGATE_HI(a[pos]))
+						pos += 2;
+					else ++pos;
+					--i;
+				}
+				if (pos > sr)
+					pos = sr;
+
+				return *this;
+			}
+
+			//! Go back a specified number of full characters in the string.
+			//! \return Myself.
+			_Iter& operator-=(const difference_type v)
+			{
+				if (v == 0) return *this;
+				if (v > 0) return operator+=(v * -1);
+
+				if (pos == 0)
+					return *this;
+
+				// Go to the appropriate position.
+				// TODO: Don't force u32 on an x64 OS.  Make it agnostic.
+				u32 i = (u32)v;
+				const uchar16_t* a = ref->c_str();
+				while (i != 0 && pos != 0)
+				{
+					--pos;
+					if (UTF16_IS_SURROGATE_LO(a[pos]) != 0 && pos != 0)
+						--pos;
+					--i;
+				}
+
+				return *this;
+			}
+
+			//! Return a new iterator that is a variable number of full characters forward from the current position.
+			_Iter operator+(const difference_type v) const
+			{
+				_Iter ret(*this);
+				ret += v;
+				return ret;
+			}
+
+			//! Return a new iterator that is a variable number of full characters backward from the current position.
+			_Iter operator-(const difference_type v) const
+			{
+				_Iter ret(*this);
+				ret -= v;
+				return ret;
+			}
+
+			//! Returns the distance between two iterators.
+			difference_type operator-(const _Iter& iter) const
+			{
+				// Make sure we reference the same object!
+				if (ref != iter.ref)
+					return difference_type();
+
+				_Iter i = iter;
+				difference_type ret;
+
+				// Walk up.
+				if (pos > i.pos)
+				{
+					while (pos > i.pos)
+					{
+						++i;
+						++ret;
+					}
+					return ret;
+				}
+
+				// Walk down.
+				while (pos < i.pos)
+				{
+					--i;
+					--ret;
+				}
+				return ret;
+			}
+
+			//! Accesses the full character at the iterator's position.
+			const_reference operator*() const
+			{
+				if (pos >= ref->size_raw())
+				{
+					const uchar16_t* a = ref->c_str();
+					u32 p = ref->size_raw();
+					if (UTF16_IS_SURROGATE_LO(a[p]))
+						--p;
+					reference ret(ref, p);
+					return ret;
+				}
+				const_reference ret(ref, pos);
+				return ret;
+			}
+
+			//! Accesses the full character at the iterator's position.
+			reference operator*()
+			{
+				if (pos >= ref->size_raw())
+				{
+					const uchar16_t* a = ref->c_str();
+					u32 p = ref->size_raw();
+					if (UTF16_IS_SURROGATE_LO(a[p]))
+						--p;
+					reference ret(ref, p);
+					return ret;
+				}
+				reference ret(ref, pos);
+				return ret;
+			}
+
+			//! Accesses the full character at the iterator's position.
+			const_pointer operator->() const
+			{
+				return operator*();
+			}
+
+			//! Accesses the full character at the iterator's position.
+			pointer operator->()
+			{
+				return operator*();
+			}
+
+			//! Is the iterator at the start of the string?
+			bool atStart() const
+			{
+				return pos == 0;
+			}
+
+			//! Is the iterator at the end of the string?
+			bool atEnd() const
+			{
+				const uchar16_t* a = ref->c_str();
+				if (UTF16_IS_SURROGATE(a[pos]))
+					return (pos + 1) >= ref->size_raw();
+				else return pos >= ref->size_raw();
+			}
+
+			//! Moves the iterator to the start of the string.
+			void toStart()
+			{
+				pos = 0;
+			}
+
+			//! Moves the iterator to the end of the string.
+			void toEnd()
+			{
+				const uchar16_t* a = ref->c_str();
+				pos = ref->size_raw();
+			}
+
+			//! Returns the iterator's position.
+			//! \return The iterator's position.
+			u32 getPos() const
+			{
+				return pos;
+			}
+
+		protected:
+			const ustring16<TAlloc>* ref;
+			u32 pos;
+	};
+
+	//! Iterator to iterate through a UTF-16 string.
+	class _ustring16_iterator : public _ustring16_const_iterator
+	{
+		public:
+			typedef _ustring16_iterator _Iter;
+			typedef _ustring16_const_iterator _Base;
+			typedef typename _Base::const_pointer const_pointer;
+			typedef typename _Base::const_reference const_reference;
+
+			typedef typename _Base::value_type value_type;
+			typedef typename _Base::difference_type difference_type;
+			typedef typename _Base::distance_type distance_type;
+			typedef access pointer;
+			typedef access reference;
+			
+			using _Base::pos;
+			using _Base::ref;
+
+			//! Constructors.
+			_ustring16_iterator(const _Iter& i) : _ustring16_const_iterator(i) {}
+			_ustring16_iterator(const ustring16<TAlloc>& s) : _ustring16_const_iterator(s) {}
+			_ustring16_iterator(const ustring16<TAlloc>& s, const u32 p) : _ustring16_const_iterator(s, p) {}
+
+			//! Accesses the full character at the iterator's position.
+			reference operator*() const
+			{
+				if (pos >= ref->size_raw())
+				{
+					const uchar16_t* a = ref->c_str();
+					u32 p = ref->size_raw();
+					if (UTF16_IS_SURROGATE_LO(a[p]))
+						--p;
+					reference ret(ref, p);
+					return ret;
+				}
+				reference ret(ref, pos);
+				return ret;
+			}
+
+			//! Accesses the full character at the iterator's position.
+			reference operator*()
+			{
+				if (pos >= ref->size_raw())
+				{
+					const uchar16_t* a = ref->c_str();
+					u32 p = ref->size_raw();
+					if (UTF16_IS_SURROGATE_LO(a[p]))
+						--p;
+					reference ret(ref, p);
+					return ret;
+				}
+				reference ret(ref, pos);
+				return ret;
+			}
+
+			//! Accesses the full character at the iterator's position.
+			pointer operator->() const
+			{
+				return operator*();
+			}
+
+			//! Accesses the full character at the iterator's position.
+			pointer operator->()
+			{
+				return operator*();
+			}
+	};
+
+	typedef typename ustring16<TAlloc>::_ustring16_iterator iterator;
+	typedef typename ustring16<TAlloc>::_ustring16_const_iterator const_iterator;
+
+	///----------------------///
+	/// end iterator classes ///
+	///----------------------///
+
+	//! Default constructor
+	ustring16()
+	: array(0), allocated(1), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+		array = allocator.allocate(1); // new u16[1];
+		array[0] = 0x0;
+	}
+
+
+	//! Constructor
+	ustring16(const ustring16<TAlloc>& other)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+		*this = other;
+	}
+
+
+	//! Constructor from other string types
+	template <class B, class A>
+	ustring16(const string<B, A>& other)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+		*this = other;
+	}
+
+
+#ifndef USTRING_NO_STL
+	//! Constructor from std::string
+	template <class B, class A, typename Alloc>
+	ustring16(const std::basic_string<B, A, Alloc>& other)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+		*this = other.c_str();
+	}
+
+
+	//! Constructor from iterator.
+	template <typename Itr>
+	ustring16(Itr first, Itr last)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+		reserve(std::distance(first, last));
+		array[used] = 0;
+
+		for (; first != last; ++first)
+			append((uchar32_t)*first);
+	}
+#endif
+
+
+#ifndef USTRING_CPP0X_NEWLITERALS
+	//! Constructor for copying a character string from a pointer.
+	ustring16(const char* const c)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		loadDataStream(c, strlen(c));
+		//append((uchar8_t*)c);
+	}
+
+
+	//! Constructor for copying a character string from a pointer with a given length.
+	ustring16(const char* const c, u32 length)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		loadDataStream(c, length);
+	}
+#endif
+
+
+	//! Constructor for copying a UTF-8 string from a pointer.
+	ustring16(const uchar8_t* const c)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append(c);
+	}
+
+
+	//! Constructor for copying a UTF-8 string from a single char.
+	ustring16(const char c)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append((uchar32_t)c);
+	}
+
+
+	//! Constructor for copying a UTF-8 string from a pointer with a given length.
+	ustring16(const uchar8_t* const c, u32 length)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append(c, length);
+	}
+
+
+	//! Constructor for copying a UTF-16 string from a pointer.
+	ustring16(const uchar16_t* const c)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append(c);
+	}
+
+
+	//! Constructor for copying a UTF-16 string from a pointer with a given length
+	ustring16(const uchar16_t* const c, u32 length)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append(c, length);
+	}
+
+
+	//! Constructor for copying a UTF-32 string from a pointer.
+	ustring16(const uchar32_t* const c)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append(c);
+	}
+
+
+	//! Constructor for copying a UTF-32 from a pointer with a given length.
+	ustring16(const uchar32_t* const c, u32 length)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		append(c, length);
+	}
+
+
+	//! Constructor for copying a wchar_t string from a pointer.
+	ustring16(const wchar_t* const c)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		if (sizeof(wchar_t) == 4)
+			append(reinterpret_cast<const uchar32_t* const>(c));
+		else if (sizeof(wchar_t) == 2)
+			append(reinterpret_cast<const uchar16_t* const>(c));
+		else if (sizeof(wchar_t) == 1)
+			append(reinterpret_cast<const uchar8_t* const>(c));
+	}
+
+
+	//! Constructor for copying a wchar_t string from a pointer with a given length.
+	ustring16(const wchar_t* const c, u32 length)
+	: array(0), allocated(0), used(0)
+	{
+#if __BIG_ENDIAN__
+		encoding = unicode::EUTFE_UTF16_BE;
+#else
+		encoding = unicode::EUTFE_UTF16_LE;
+#endif
+
+		if (sizeof(wchar_t) == 4)
+			append(reinterpret_cast<const uchar32_t* const>(c), length);
+		else if (sizeof(wchar_t) == 2)
+			append(reinterpret_cast<const uchar16_t* const>(c), length);
+		else if (sizeof(wchar_t) == 1)
+			append(reinterpret_cast<const uchar8_t* const>(c), length);
+	}
+
+
+#ifdef USTRING_CPP0X
+	//! Constructor for moving a ustring16
+	ustring16(ustring16<TAlloc>&& other)
+	: array(other.array), encoding(other.encoding), allocated(other.allocated), used(other.used)
+	{
+		//std::cout << "MOVE constructor" << std::endl;
+		other.array = 0;
+		other.allocated = 0;
+		other.used = 0;
+	}
+#endif
+
+
+	//! Destructor
+	~ustring16()
+	{
+		allocator.deallocate(array); // delete [] array;
+	}
+
+
+	//! Assignment operator
+	ustring16& operator=(const ustring16<TAlloc>& other)
+	{
+		if (this == &other)
+			return *this;
+
+		used = other.size_raw();
+		if (used >= allocated)
+		{
+			allocator.deallocate(array); // delete [] array;
+			allocated = used + 1;
+			array = allocator.allocate(used + 1); //new u16[used];
+		}
+
+		const uchar16_t* p = other.c_str();
+		for (u32 i=0; i<=used; ++i, ++p)
+			array[i] = *p;
+
+		array[used] = 0;
+
+		// Validate our new UTF-16 string.
+		validate();
+
+		return *this;
+	}
+
+
+#ifdef USTRING_CPP0X
+	//! Move assignment operator
+	ustring16& operator=(ustring16<TAlloc>&& other)
+	{
+		if (this != &other)
+		{
+			//std::cout << "MOVE operator=" << std::endl;
+			allocator.deallocate(array);
+
+			array = other.array;
+			allocated = other.allocated;
+			encoding = other.encoding;
+			used = other.used;
+			other.array = 0;
+			other.used = 0;
+		}
+		return *this;
+	}
+#endif
+
+
+	//! Assignment operator for other string types
+	template <class B, class A>
+	ustring16<TAlloc>& operator=(const string<B, A>& other)
+	{
+		*this = other.c_str();
+		return *this;
+	}
+
+
+	//! Assignment operator for UTF-8 strings
+	ustring16<TAlloc>& operator=(const uchar8_t* const c)
+	{
+		if (!array)
+		{
+			array = allocator.allocate(1); //new u16[1];
+			allocated = 1;
+		}
+		used = 0;
+		array[used] = 0x0;
+		if (!c) return *this;
+
+		//! Append our string now.
+		append(c);
+		return *this;
+	}
+
+
+	//! Assignment operator for UTF-16 strings
+	ustring16<TAlloc>& operator=(const uchar16_t* const c)
+	{
+		if (!array)
+		{
+			array = allocator.allocate(1); //new u16[1];
+			allocated = 1;
+		}
+		used = 0;
+		array[used] = 0x0;
+		if (!c) return *this;
+
+		//! Append our string now.
+		append(c);
+		return *this;
+	}
+
+
+	//! Assignment operator for UTF-32 strings
+	ustring16<TAlloc>& operator=(const uchar32_t* const c)
+	{
+		if (!array)
+		{
+			array = allocator.allocate(1); //new u16[1];
+			allocated = 1;
+		}
+		used = 0;
+		array[used] = 0x0;
+		if (!c) return *this;
+
+		//! Append our string now.
+		append(c);
+		return *this;
+	}
+
+
+	//! Assignment operator for wchar_t strings.
+	/** Note that this assumes that a correct unicode string is stored in the wchar_t string.
+		Since wchar_t changes depending on its platform, it could either be a UTF-8, -16, or -32 string.
+		This function assumes you are storing the correct unicode encoding inside the wchar_t string. **/
+	ustring16<TAlloc>& operator=(const wchar_t* const c)
+	{
+		if (sizeof(wchar_t) == 4)
+			*this = reinterpret_cast<const uchar32_t* const>(c);
+		else if (sizeof(wchar_t) == 2)
+			*this = reinterpret_cast<const uchar16_t* const>(c);
+		else if (sizeof(wchar_t) == 1)
+			*this = reinterpret_cast<const uchar8_t* const>(c);
+
+		return *this;
+	}
+
+
+	//! Assignment operator for other strings.
+	/** Note that this assumes that a correct unicode string is stored in the string. **/
+	template <class B>
+	ustring16<TAlloc>& operator=(const B* const c)
+	{
+		if (sizeof(B) == 4)
+			*this = reinterpret_cast<const uchar32_t* const>(c);
+		else if (sizeof(B) == 2)
+			*this = reinterpret_cast<const uchar16_t* const>(c);
+		else if (sizeof(B) == 1)
+			*this = reinterpret_cast<const uchar8_t* const>(c);
+
+		return *this;
+	}
+
+
+	//! Direct access operator
+	access operator [](const u32 index)
+	{
+		_IRR_DEBUG_BREAK_IF(index>=size()) // bad index
+		iterator iter(*this, index);
+		return iter.operator*();
+	}
+
+
+	//! Direct access operator
+	const access operator [](const u32 index) const
+	{
+		_IRR_DEBUG_BREAK_IF(index>=size()) // bad index
+		const_iterator iter(*this, index);
+		return iter.operator*();
+	}
+
+
+	//! Equality operator
+	bool operator ==(const uchar16_t* const str) const
+	{
+		if (!str)
+			return false;
+
+		u32 i;
+		for(i=0; array[i] && str[i]; ++i)
+			if (array[i] != str[i])
+				return false;
+
+		return !array[i] && !str[i];
+	}
+
+
+	//! Equality operator
+	bool operator ==(const ustring16<TAlloc>& other) const
+	{
+		for(u32 i=0; array[i] && other.array[i]; ++i)
+			if (array[i] != other.array[i])
+				return false;
+
+		return used == other.used;
+	}
+
+
+	//! Is smaller comparator
+	bool operator <(const ustring16<TAlloc>& other) const
+	{
+		for(u32 i=0; array[i] && other.array[i]; ++i)
+		{
+			s32 diff = array[i] - other.array[i];
+			if ( diff )
+				return diff < 0;
+		}
+
+		return used < other.used;
+	}
+
+
+	//! Inequality operator
+	bool operator !=(const uchar16_t* const str) const
+	{
+		return !(*this == str);
+	}
+
+
+	//! Inequality operator
+	bool operator !=(const ustring16<TAlloc>& other) const
+	{
+		return !(*this == other);
+	}
+
+
+	//! Returns the length of a ustring16 in full characters.
+	//! \return Length of a ustring16 in full characters.
+	u32 size() const
+	{
+		const_iterator i(*this, 0);
+		u32 pos = 0;
+		while (!i.atEnd())
+		{
+			++i;
+			++pos;
+		}
+		return pos;
+	}
+
+
+	//! Informs if the ustring is empty or not.
+	//! \return True if the ustring is empty, false if not.
+	bool empty() const
+	{
+		return (size_raw() == 0);
+	}
+
+
+	//! Returns a pointer to the raw UTF-16 string data.
+	//! \return pointer to C-style NUL terminated array of UTF-16 code points.
+	const uchar16_t* c_str() const
+	{
+		return array;
+	}
+
+
+	//! Compares the first n characters of this string with another.
+	//! \param other Other string to compare to.
+	//! \param n Number of characters to compare.
+	//! \return True if the n first characters of both strings are equal.
+	bool equalsn(const ustring16<TAlloc>& other, u32 n) const
+	{
+		u32 i;
+		const uchar16_t* oa = other.c_str();
+		for(i=0; array[i] && oa[i] && i < n; ++i)
+			if (array[i] != oa[i])
+				return false;
+
+		// if one (or both) of the strings was smaller then they
+		// are only equal if they have the same length
+		return (i == n) || (used == other.used);
+	}
+
+
+	//! Compares the first n characters of this string with another.
+	//! \param str Other string to compare to.
+	//! \param n Number of characters to compare.
+	//! \return True if the n first characters of both strings are equal.
+	bool equalsn(const uchar16_t* const str, u32 n) const
+	{
+		if (!str)
+			return false;
+		u32 i;
+		for(i=0; array[i] && str[i] && i < n; ++i)
+			if (array[i] != str[i])
+				return false;
+
+		// if one (or both) of the strings was smaller then they
+		// are only equal if they have the same length
+		return (i == n) || (array[i] == 0 && str[i] == 0);
+	}
+
+
+	//! Appends a character to this ustring16
+	//! \param character The character to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& append(uchar32_t character)
+	{
+		if (used + 2 >= allocated)
+			reallocate(used + 2);
+
+		if (character > 0xFFFF)
+		{
+			used += 2;
+
+			// character will be multibyte, so split it up into a surrogate pair.
+			uchar16_t x = static_cast<uchar16_t>(character);
+			uchar16_t vh = UTF16_HI_SURROGATE | ((((character >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10);
+			uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1));
+			array[used-2] = vh;
+			array[used-1] = vl;
+		}
+		else
+		{
+			++used;
+			array[used-1] = character;
+		}
+		array[used] = 0;
+
+		return *this;
+	}
+
+
+	//! Appends a UTF-8 string to this ustring16
+	//! \param other The UTF-8 string to append.
+	//! \param length The length of the string to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& append(const uchar8_t* const other, u32 length=0xffffffff)
+	{
+		if (!other)
+			return *this;
+
+		// Determine if the string is long enough for a BOM.
+		u32 len = 0;
+		const uchar8_t* p = other;
+		do
+		{
+			++len;
+		} while (*p++ && len < unicode::BOM_ENCODE_UTF8_LEN);
+
+		// Check for BOM.
+		unicode::EUTF_ENCODE c_bom = unicode::EUTFE_NONE;
+		if (len == unicode::BOM_ENCODE_UTF8_LEN)
+		{
+			if (memcmp(other, unicode::BOM_ENCODE_UTF8, unicode::BOM_ENCODE_UTF8_LEN) == 0)
+				c_bom = unicode::EUTFE_UTF8;
+		}
+
+		// If a BOM was found, don't include it in the string.
+		const uchar8_t* c2 = other;
+		if (c_bom != unicode::EUTFE_NONE)
+		{
+			c2 = other + unicode::BOM_UTF8_LEN;
+			length -= unicode::BOM_UTF8_LEN;
+		}
+
+		// Calculate the size of the string to read in.
+		len = 0;
+		p = c2;
+		do
+		{
+			++len;
+		} while(*p++ && len < length);
+		if (len > length)
+			len = length;
+
+		// If we need to grow the array, do it now.
+		if (used + len >= allocated)
+			reallocate(used + (len * 2));
+		u32 start = used;
+
+		// Convert UTF-8 to UTF-16.
+		u32 pos = start;
+		for (u32 l = 0; l<len;)
+		{
+			++used;
+			if (((c2[l] >> 6) & 0x03) == 0x02)
+			{	// Invalid continuation byte.
+				array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+				++l;
+			}
+			else if (c2[l] == 0xC0 || c2[l] == 0xC1)
+			{	// Invalid byte - overlong encoding.
+				array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+				++l;
+			}
+			else if ((c2[l] & 0xF8) == 0xF0)
+			{	// 4 bytes UTF-8, 2 bytes UTF-16.
+				// Check for a full string.
+				if ((l + 3) >= len)
+				{
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+					l += 3;
+					break;
+				}
+
+				// Validate.
+				bool valid = true;
+				u8 l2 = 0;
+				if (valid && (((c2[l+1] >> 6) & 0x03) == 0x02)) ++l2; else valid = false;
+				if (valid && (((c2[l+2] >> 6) & 0x03) == 0x02)) ++l2; else valid = false;
+				if (valid && (((c2[l+3] >> 6) & 0x03) == 0x02)) ++l2; else valid = false;
+				if (!valid)
+				{
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+					l += l2;
+					continue;
+				}
+
+				// Decode.
+				uchar8_t b1 = ((c2[l] & 0x7) << 2) | ((c2[l+1] >> 4) & 0x3);
+				uchar8_t b2 = ((c2[l+1] & 0xF) << 4) | ((c2[l+2] >> 2) & 0xF);
+				uchar8_t b3 = ((c2[l+2] & 0x3) << 6) | (c2[l+3] & 0x3F);
+				uchar32_t v = b3 | ((uchar32_t)b2 << 8) | ((uchar32_t)b1 << 16);
+
+				// Split v up into a surrogate pair.
+				uchar16_t x = static_cast<uchar16_t>(v);
+				uchar16_t vh = UTF16_HI_SURROGATE | ((((v >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10);
+				uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1));
+
+				array[pos++] = vh;
+				array[pos++] = vl;
+				l += 4;
+				++used;		// Using two shorts this time, so increase used by 1.
+			}
+			else if ((c2[l] & 0xF0) == 0xE0)
+			{	// 3 bytes UTF-8, 1 byte UTF-16.
+				// Check for a full string.
+				if ((l + 2) >= len)
+				{
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+					l += 2;
+					break;
+				}
+
+				// Validate.
+				bool valid = true;
+				u8 l2 = 0;
+				if (valid && (((c2[l+1] >> 6) & 0x03) == 0x02)) ++l2; else valid = false;
+				if (valid && (((c2[l+2] >> 6) & 0x03) == 0x02)) ++l2; else valid = false;
+				if (!valid)
+				{
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+					l += l2;
+					continue;
+				}
+
+				// Decode.
+				uchar8_t b1 = ((c2[l] & 0xF) << 4) | ((c2[l+1] >> 2) & 0xF);
+				uchar8_t b2 = ((c2[l+1] & 0x3) << 6) | (c2[l+2] & 0x3F);
+				uchar16_t ch = b2 | ((uchar16_t)b1 << 8);
+				array[pos++] = ch;
+				l += 3;
+			}
+			else if ((c2[l] & 0xE0) == 0xC0)
+			{	// 2 bytes UTF-8, 1 byte UTF-16.
+				// Check for a full string.
+				if ((l + 1) >= len)
+				{
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+					l += 1;
+					break;
+				}
+
+				// Validate.
+				if (((c2[l+1] >> 6) & 0x03) != 0x02)
+				{
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+					++l;
+					continue;
+				}
+
+				// Decode.
+				uchar8_t b1 = (c2[l] >> 2) & 0x7;
+				uchar8_t b2 = ((c2[l] & 0x3) << 6) | (c2[l+1] & 0x3F);
+				uchar16_t ch = b2 | ((uchar16_t)b1 << 8);
+				array[pos++] = ch;
+				l += 2;
+			}
+			else
+			{	// 1 byte UTF-8, 1 byte UTF-16.
+				// Validate.
+				if (c2[l] > 0x7F)
+				{	// Values above 0xF4 are restricted and aren't used.  By now, anything above 0x7F is invalid.
+					array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+				}
+				else array[pos++] = static_cast<uchar16_t>(c2[l]);
+				++l;
+			}
+		}
+		array[used] = 0;
+
+		// Validate our new UTF-16 string.
+		validate();
+
+		return *this;
+	}
+
+
+	//! Appends a UTF-16 string to this ustring16
+	//! \param other The UTF-16 string to append.
+	//! \param length The length of the string to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& append(const uchar16_t* const other, u32 length=0xffffffff)
+	{
+		if (!other)
+			return *this;
+
+		// Determine if the string is long enough for a BOM.
+		u32 len = 0;
+		const uchar16_t* p = other;
+		do
+		{
+			++len;
+		} while (*p++ && len < unicode::BOM_ENCODE_UTF16_LEN);
+
+		// Check for the BOM to determine the string's endianness.
+		unicode::EUTF_ENDIAN c_end = unicode::EUTFEE_NATIVE;
+		if (memcmp(other, unicode::BOM_ENCODE_UTF16_LE, unicode::BOM_ENCODE_UTF16_LEN) == 0)
+			c_end = unicode::EUTFEE_LITTLE;
+		else if (memcmp(other, unicode::BOM_ENCODE_UTF16_BE, unicode::BOM_ENCODE_UTF16_LEN) == 0)
+			c_end = unicode::EUTFEE_BIG;
+
+		// If a BOM was found, don't include it in the string.
+		const uchar16_t* c2 = other;
+		if (c_end != unicode::EUTFEE_NATIVE)
+		{
+			c2 = other + unicode::BOM_UTF16_LEN;
+			length -= unicode::BOM_UTF16_LEN;
+		}
+
+		// Calculate the size of the string to read in.
+		len = 0;
+		p = c2;
+		do
+		{
+			++len;
+		} while(*p++ && len < length);
+		if (len > length)
+			len = length;
+
+		// If we need to grow the size of the array, do it now.
+		if (used + len >= allocated)
+			reallocate(used + (len * 2));
+		u32 start = used;
+		used += len;
+
+		// Copy the string now.
+		unicode::EUTF_ENDIAN m_end = getEndianness();
+		for (u32 l = start; l < start + len; ++l)
+		{
+			array[l] = (uchar16_t)c2[l];
+			if (c_end != unicode::EUTFEE_NATIVE && c_end != m_end)
+				array[l] = unicode::swapEndian16(array[l]);
+		}
+
+		array[used] = 0;
+
+		// Validate our new UTF-16 string.
+		validate();
+		return *this;
+	}
+
+
+	//! Appends a UTF-32 string to this ustring16
+	//! \param other The UTF-32 string to append.
+	//! \param length The length of the string to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& append(const uchar32_t* const other, u32 length=0xffffffff)
+	{
+		if (!other)
+			return *this;
+
+		// Check for the BOM to determine the string's endianness.
+		unicode::EUTF_ENDIAN c_end = unicode::EUTFEE_NATIVE;
+		if (memcmp(other, unicode::BOM_ENCODE_UTF32_LE, unicode::BOM_ENCODE_UTF32_LEN) == 0)
+			c_end = unicode::EUTFEE_LITTLE;
+		else if (memcmp(other, unicode::BOM_ENCODE_UTF32_BE, unicode::BOM_ENCODE_UTF32_LEN) == 0)
+			c_end = unicode::EUTFEE_BIG;
+
+		// If a BOM was found, don't include it in the string.
+		const uchar32_t* c2 = other;
+		if (c_end != unicode::EUTFEE_NATIVE)
+		{
+			c2 = other + unicode::BOM_UTF32_LEN;
+			length -= unicode::BOM_UTF32_LEN;
+		}
+
+		// Calculate the size of the string to read in.
+		u32 len = 0;
+		const uchar32_t* p = c2;
+		do
+		{
+			++len;
+		} while(*p++ && len < length);
+		if (len > length)
+			len = length;
+
+		// If we need to grow the size of the array, do it now.
+		// In case all of the UTF-32 string is split into surrogate pairs, do len * 2.
+		if (used + (len * 2) >= allocated)
+			reallocate(used + ((len * 2) * 2));
+		u32 start = used;
+
+		// Convert UTF-32 to UTF-16.
+		unicode::EUTF_ENDIAN m_end = getEndianness();
+		u32 pos = start;
+		for (u32 l = 0; l<len; ++l)
+		{
+			++used;
+
+			uchar32_t ch = c2[l];
+			if (c_end != unicode::EUTFEE_NATIVE && c_end != m_end)
+				ch = unicode::swapEndian32(ch);
+
+			if (ch > 0xFFFF)
+			{
+				// Split ch up into a surrogate pair as it is over 16 bits long.
+				uchar16_t x = static_cast<uchar16_t>(ch);
+				uchar16_t vh = UTF16_HI_SURROGATE | ((((ch >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10);
+				uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1));
+				array[pos++] = vh;
+				array[pos++] = vl;
+				++used;		// Using two shorts, so increased used again.
+			}
+			else if (ch >= 0xD800 && ch <= 0xDFFF)
+			{
+				// Between possible UTF-16 surrogates (invalid!)
+				array[pos++] = unicode::UTF_REPLACEMENT_CHARACTER;
+			}
+			else array[pos++] = static_cast<uchar16_t>(ch);
+		}
+		array[used] = 0;
+
+		// Validate our new UTF-16 string.
+		validate();
+
+		return *this;
+	}
+
+
+	//! Appends a ustring16 to this ustring16
+	//! \param other The string to append to this one.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& append(const ustring16<TAlloc>& other)
+	{
+		const uchar16_t* oa = other.c_str();
+
+		u32 len = other.size_raw();
+
+		if (used + len >= allocated)
+			reallocate(used + len);
+
+		for (u32 l=0; l<len; ++l)
+			array[used+l] = oa[l];
+
+		used += len;
+		array[used] = 0;
+
+		return *this;
+	}
+
+
+	//! Appends a certain amount of characters of a ustring16 to this ustring16.
+	//! \param other The string to append to this one.
+	//! \param length How many characters of the other string to add to this one.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& append(const ustring16<TAlloc>& other, u32 length)
+	{
+		if (other.size() == 0)
+			return *this;
+
+		if (other.size() < length)
+		{
+			append(other);
+			return *this;
+		}
+
+		if (used + length * 2 >= allocated)
+			reallocate(used + length * 2);
+
+		const_iterator iter(other, 0);
+		u32 l = length;
+		while (!iter.atEnd() && l)
+		{
+			uchar32_t c = *iter;
+			append(c);
+			++iter;
+			--l;
+		}
+
+		return *this;
+	}
+
+
+	//! Reserves some memory.
+	//! \param count The amount of characters to reserve.
+	void reserve(u32 count)
+	{
+		if (count < allocated)
+			return;
+
+		reallocate(count);
+	}
+
+
+	//! Finds first occurrence of character.
+	//! \param c The character to search for.
+	//! \return Position where the character has been found, or -1 if not found.
+	s32 findFirst(uchar32_t c) const
+	{
+		const_iterator i(*this, 0);
+
+		s32 pos = 0;
+		while (!i.atEnd())
+		{
+			uchar32_t t = *i;
+			if (c == t)
+				return pos;
+			++pos;
+			++i;
+		}
+
+		return -1;
+	}
+
+	//! Finds first occurrence of a character of a list.
+	//! \param c A list of characters to find. For example if the method should find the first occurrence of 'a' or 'b', this parameter should be "ab".
+	//! \param count The amount of characters in the list. Usually, this should be strlen(c).
+	//! \return Position where one of the characters has been found, or -1 if not found.
+	s32 findFirstChar(const uchar32_t* const c, u32 count=1) const
+	{
+		if (!c || !count)
+			return -1;
+
+		const_iterator i(*this, 0);
+
+		s32 pos = 0;
+		while (!i.atEnd())
+		{
+			uchar32_t t = *i;
+			for (u32 j=0; j<count; ++j)
+				if (t == c[j])
+					return pos;
+			++pos;
+			++i;
+		}
+
+		return -1;
+	}
+
+
+	//! Finds first position of a character not in a given list.
+	//! \param c A list of characters to NOT find. For example if the method should find the first occurrence of a character not 'a' or 'b', this parameter should be "ab".
+	//! \param count The amount of characters in the list. Usually, this should be strlen(c).
+	//! \return Position where the character has been found, or -1 if not found.
+	s32 findFirstCharNotInList(const uchar32_t* const c, u32 count=1) const
+	{
+		if (!c || !count)
+			return -1;
+
+		const_iterator i(*this, 0);
+
+		s32 pos = 0;
+		while (!i.atEnd())
+		{
+			uchar32_t t = *i;
+			u32 j;
+			for (j=0; j<count; ++j)
+				if (t == c[j])
+					break;
+
+			if (j==count)
+				return pos;
+			++pos;
+			++i;
+		}
+
+		return -1;
+	}
+
+	//! Finds last position of a character not in a given list.
+	//! \param c A list of characters to NOT find. For example if the method should find the first occurrence of a character not 'a' or 'b', this parameter should be "ab".
+	//! \param count The amount of characters in the list. Usually, this should be strlen(c).
+	//! \return Position where the character has been found, or -1 if not found.
+	s32 findLastCharNotInList(const uchar32_t* const c, u32 count=1) const
+	{
+		if (!c || !count)
+			return -1;
+
+		const_iterator i(end());
+		--i;
+
+		s32 pos = size() - 1;
+		while (!i.atStart())
+		{
+			uchar32_t t = *i;
+			u32 j;
+			for (j=0; j<count; ++j)
+				if (t == c[j])
+					break;
+
+			if (j==count)
+				return pos;
+			--pos;
+			--i;
+		}
+
+		return -1;
+	}
+
+	//! Finds next occurrence of character.
+	//! \param c The character to search for.
+	//! \param startPos The position in the string to start searching.
+	//! \return Position where the character has been found, or -1 if not found.
+	s32 findNext(uchar32_t c, u32 startPos) const
+	{
+		const_iterator i(*this, startPos);
+
+		s32 pos = startPos;
+		while (!i.atEnd())
+		{
+			uchar32_t t = *i;
+			if (t == c)
+				return pos;
+			++pos;
+			++i;
+		}
+
+		return -1;
+	}
+
+
+	//! Finds last occurrence of character.
+	//! \param c The character to search for.
+	//! \param start The start position of the reverse search ( default = -1, on end ).
+	//! \return Position where the character has been found, or -1 if not found.
+	s32 findLast(uchar32_t c, s32 start = -1) const
+	{
+		u32 s = size();
+		start = core::clamp ( start < 0 ? (s32)s : start, 0, (s32)s ) - 1;
+
+		const_iterator i(*this, start);
+		u32 pos = start;
+		while (!i.atStart())
+		{
+			uchar32_t t = *i;
+			if (t == c)
+				return pos;
+			--pos;
+			--i;
+		}
+
+		return -1;
+	}
+
+	//! Finds last occurrence of a character in a list.
+	//! \param c A list of strings to find. For example if the method should find the last occurrence of 'a' or 'b', this parameter should be "ab".
+	//! \param count The amount of characters in the list. Usually, this should be strlen(c).
+	//! \return Position where one of the characters has been found, or -1 if not found.
+	s32 findLastChar(const uchar32_t* const c, u32 count=1) const
+	{
+		if (!c || !count)
+			return -1;
+
+		const_iterator i(end());
+		--i;
+
+		s32 pos = size();
+		while (!i.atStart())
+		{
+			uchar32_t t = *i;
+			for (u32 j=0; j<count; ++j)
+				if (t == c[j])
+					return pos;
+			--pos;
+			--i;
+		}
+
+		return -1;
+	}
+
+
+	//! Finds another ustring16 in this ustring16.
+	//! \param str The string to find.
+	//! \param start The start position of the search.
+	//! \return Positions where the ustring16 has been found, or -1 if not found.
+	s32 find(const ustring16<TAlloc>& str, const u32 start = 0) const
+	{
+		u32 my_size = size();
+		u32 their_size = str.size();
+
+		if (their_size == 0 || my_size - start < their_size)
+			return -1;
+
+		const_iterator i(*this, start);
+
+		s32 pos = start;
+		while (!i.atEnd())
+		{
+			const_iterator i2(i);
+			const_iterator j(str, 0);
+			uchar32_t t1 = (uchar32_t)*i2;
+			uchar32_t t2 = (uchar32_t)*j;
+			while (t1 == t2)
+			{
+				++i2;
+				++j;
+				if (j.atEnd())
+					return pos;
+				t1 = (uchar32_t)*i2;
+				t2 = (uchar32_t)*j;
+			}
+			++i;
+			++pos;
+		}
+
+		return -1;
+	}
+
+
+	//! Finds another ustring16 in this ustring16.
+	//! \param str The string to find.
+	//! \param start The start position of the search.
+	//! \return Positions where the string has been found, or -1 if not found.
+	s32 find_raw(const ustring16<TAlloc>& str, const u32 start = 0) const
+	{
+		const uchar16_t* data = str.c_str();
+		if (data && *data)
+		{
+			u32 len = 0;
+
+			while (data[len])
+				++len;
+
+			if (len > used)
+				return -1;
+
+			for (u32 i=start; i<=used-len; ++i)
+			{
+				u32 j=0;
+
+				while(data[j] && array[i+j] == data[j])
+					++j;
+
+				if (!data[j])
+					return i;
+			}
+		}
+
+		return -1;
+	}
+
+
+	//! Returns a substring.
+	//! \param begin: Start of substring.
+	//! \param length: Length of substring.
+	//! \return A reference to our current string.
+	ustring16<TAlloc> subString(u32 begin, s32 length) const
+	{
+		u32 len = size();
+		// if start after ustring16
+		// or no proper substring length
+		if ((length <= 0) || (begin>=len))
+			return ustring16<TAlloc>("");
+		// clamp length to maximal value
+		if ((length+begin) > len)
+			length = len-begin;
+
+		ustring16<TAlloc> o;
+		o.reserve((length+1) * 2);
+
+		const_iterator i(*this, begin);
+		while (!i.atEnd() && length)
+		{
+			o.append(*i);
+			++i;
+			--length;
+		}
+
+		return o;
+	}
+
+
+	//! Appends a character to this ustring16.
+	//! \param c Character to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (char c)
+	{
+		append((uchar32_t)c);
+		return *this;
+	}
+
+
+	//! Appends a character to this ustring16.
+	//! \param c Character to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (uchar32_t c)
+	{
+		append(c);
+		return *this;
+	}
+
+
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (short c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+
+
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (unsigned short c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+
+
+#ifdef USTRING_CPP0X_NEWLITERALS
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (int c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+
+
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (unsigned int c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+#endif
+
+	
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (long c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+
+
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (unsigned long c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+
+
+	//! Appends a number to this ustring16.
+	//! \param c Number to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (double c)
+	{
+		append(core::stringc(c));
+		return *this;
+	}
+
+
+	//! Appends a char ustring16 to this ustring16.
+	//! \param c Char ustring16 to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (const uchar16_t* const c)
+	{
+		append(c);
+		return *this;
+	}
+
+
+	//! Appends a ustring16 to this ustring16.
+	//! \param other ustring16 to append.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& operator += (const ustring16<TAlloc>& other)
+	{
+		append(other);
+		return *this;
+	}
+
+
+	//! Replaces all characters of a given type with another one.
+	//! \param toReplace Character to replace.
+	//! \param replaceWith Character replacing the old one.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& replace(uchar32_t toReplace, uchar32_t replaceWith)
+	{
+		iterator i(*this, 0);
+		while (!i.atEnd())
+		{
+			typename ustring16<TAlloc>::access a = *i;
+			if ((uchar32_t)a == toReplace)
+				a = replaceWith;
+			++i;
+		}
+		return *this;
+	}
+
+
+	//! Replaces all instances of a string with another one.
+	//! \param toReplace The string to replace.
+	//! \param replaceWith The string replacing the old one.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& replace(const ustring16<TAlloc>& toReplace, const ustring16<TAlloc>& replaceWith)
+	{
+		if (toReplace.size() == 0)
+			return *this;
+
+		const uchar16_t* other = toReplace.c_str();
+		const uchar16_t* replace = replaceWith.c_str();
+		const u32 other_size = toReplace.size_raw();
+		const u32 replace_size = replaceWith.size_raw();
+
+		// Determine the delta.  The algorithm will change depending on the delta.
+		s32 delta = replace_size - other_size;
+
+		// A character for character replace.  The string will not shrink or grow.
+		if (delta == 0)
+		{
+			s32 pos = 0;
+			while ((pos = find_raw(other, pos)) != -1)
+			{
+				for (u32 i = 0; i < replace_size; ++i)
+					array[pos + i] = replace[i];
+				++pos;
+			}
+			return *this;
+		}
+
+		// We are going to be removing some characters.  The string will shrink.
+		if (delta < 0)
+		{
+			u32 i = 0;
+			for (u32 pos = 0; pos <= used; ++i, ++pos)
+			{
+				// Is this potentially a match?
+				if (array[pos] == *other)
+				{
+					// Check to see if we have a match.
+					u32 j;
+					for (j = 0; j < other_size; ++j)
+					{
+						if (array[pos + j] != other[j])
+							break;
+					}
+
+					// If we have a match, replace characters.
+					if (j == other_size)
+					{
+						for (j = 0; j < replace_size; ++j)
+							array[i + j] = replace[j];
+						i += replace_size - 1;
+						pos += other_size - 1;
+						continue;
+					}
+				}
+
+				// No match found, just copy characters.
+				array[i - 1] = array[pos];
+			}
+			array[i] = 0;
+			used = i;
+
+			return *this;
+		}
+
+		// We are going to be adding characters, so the string size will increase.
+		// Count the number of times toReplace exists in the string so we can allocate the new size.
+		u32 find_count = 0;
+		s32 pos = 0;
+		while ((pos = find_raw(other, pos)) != -1)
+		{
+			++find_count;
+			++pos;
+		}
+
+		// Re-allocate the string now, if needed.
+		u32 len = delta * find_count;
+		if (used + len >= allocated)
+			reallocate(used + len);
+
+		// Start replacing.
+		pos = 0;
+		while ((pos = find_raw(other, pos)) != -1)
+		{
+			uchar16_t* start = array + pos + other_size - 1;
+			uchar16_t* ptr   = array + used;
+			uchar16_t* end   = array + used + delta;
+
+			// Shift characters to make room for the string.
+			while (ptr != start)
+			{
+				*end = *ptr;
+				--ptr;
+				--end;
+			}
+
+			// Add the new string now.
+			for (u32 i = 0; i < replace_size; ++i)
+				array[pos + i] = replace[i];
+
+			pos += replace_size;
+			used += delta;
+		}
+
+		// Terminate the string and return ourself.
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Removes characters from a ustring16..
+	//! \param c The character to remove.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& remove(uchar32_t c)
+	{
+		u32 pos = 0;
+		u32 found = 0;
+		u32 len = (c > 0xFFFF ? 2 : 1);		// Remove characters equal to the size of c as a UTF-16 character.
+		for (u32 i=0; i<=used; ++i)
+		{
+			uchar32_t uc32 = 0;
+			if (!UTF16_IS_SURROGATE_HI(array[i]))
+				uc32 |= array[i];
+			else if (i + 1 <= used)
+			{
+				// Convert the surrogate pair into a single UTF-32 character.
+				uc32 = unicode::toUTF32(array[i], array[i + 1]);
+			}
+			u32 len2 = (uc32 > 0xFFFF ? 2 : 1);
+
+			if (uc32 == c)
+			{
+				found += len;
+				continue;
+			}
+
+			array[pos++] = array[i];
+			if (len2 == 2)
+				array[pos++] = array[++i];
+		}
+		used -= found;
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Removes a ustring16 from the ustring16.
+	//! \param toRemove The string to remove.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& remove(const ustring16<TAlloc>& toRemove)
+	{
+		u32 size = toRemove.size_raw();
+		if (size == 0) return *this;
+
+		const uchar16_t* tra = toRemove.c_str();
+		u32 pos = 0;
+		u32 found = 0;
+		for (u32 i=0; i<=used; ++i)
+		{
+			u32 j = 0;
+			while (j < size)
+			{
+				if (array[i + j] != tra[j])
+					break;
+				++j;
+			}
+			if (j == size)
+			{
+				found += size;
+				i += size - 1;
+				continue;
+			}
+
+			array[pos++] = array[i];
+		}
+		used -= found;
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Removes characters from the ustring16.
+	//! \param characters The characters to remove.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& removeChars(const ustring16<TAlloc>& characters)
+	{
+		if (characters.size_raw() == 0)
+			return *this;
+
+		u32 pos = 0;
+		u32 found = 0;
+		const_iterator iter(characters);
+		for (u32 i=0; i<=used; ++i)
+		{
+			uchar32_t uc32 = 0;
+			if (!UTF16_IS_SURROGATE_HI(array[i]))
+				uc32 |= array[i];
+			else if (i + 1 <= used)
+			{
+				// Convert the surrogate pair into a single UTF-32 character.
+				uc32 = unicode::toUTF32(array[i], array[i+1]);
+			}
+			u32 len2 = (uc32 > 0xFFFF ? 2 : 1);
+
+			bool cont = false;
+			iter.toStart();
+			while (!iter.atEnd())
+			{
+				uchar32_t c = *iter;
+				if (uc32 == c)
+				{
+					found += (c > 0xFFFF ? 2 : 1);		// Remove characters equal to the size of c as a UTF-16 character.
+					++i;
+					cont = true;
+					break;
+				}
+				++iter;
+			}
+			if (cont) continue;
+
+			array[pos++] = array[i];
+			if (len2 == 2)
+				array[pos++] = array[++i];
+		}
+		used -= found;
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Trims the ustring16.
+	//! Removes the specified characters (by default, Latin-1 whitespace) from the begining and the end of the ustring16.
+	//! \param whitespace The characters that are to be considered as whitespace.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& trim(const ustring16<TAlloc>& whitespace = " \t\n\r")
+	{
+		core::array<uchar32_t> utf32white = whitespace.toUTF32();
+
+		// find start and end of the substring without the specified characters
+		const s32 begin = findFirstCharNotInList(utf32white.const_pointer(), whitespace.used + 1);
+		if (begin == -1)
+			return (*this="");
+
+		const s32 end = findLastCharNotInList(utf32white.const_pointer(), whitespace.used + 1);
+
+		return (*this = subString(begin, (end +1) - begin));
+	}
+
+
+	//! Erases a character from the ustring16.
+	//! May be slow, because all elements following after the erased element have to be copied.
+	//! \param index Index of element to be erased.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& erase(u32 index)
+	{
+		_IRR_DEBUG_BREAK_IF(index>used) // access violation
+
+		iterator i(*this, index);
+
+		uchar32_t t = *i;
+		u32 len = (t > 0xFFFF ? 2 : 1);
+
+		for (u32 j = static_cast<u32>(i.getPos()) + len; j <= used; ++j)
+			array[j - len] = array[j];
+
+		used -= len;
+		array[used] = 0;
+
+		return *this;
+	}
+
+
+	//! Validate the existing ustring16, checking for valid surrogate pairs and checking for proper termination.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& validate()
+	{
+		// Validate all unicode characters.
+		for (u32 i=0; i<allocated; ++i)
+		{
+			// Terminate on existing null.
+			if (array[i] == 0)
+			{
+				used = i;
+				return *this;
+			}
+			if (UTF16_IS_SURROGATE(array[i]))
+			{
+				if (((i+1) >= allocated) || UTF16_IS_SURROGATE_LO(array[i]))
+					array[i] = unicode::UTF_REPLACEMENT_CHARACTER;
+				else if (UTF16_IS_SURROGATE_HI(array[i]) && !UTF16_IS_SURROGATE_LO(array[i+1]))
+					array[i] = unicode::UTF_REPLACEMENT_CHARACTER;
+				++i;
+			}
+			if (array[i] >= 0xFDD0 && array[i] <= 0xFDEF)
+				array[i] = unicode::UTF_REPLACEMENT_CHARACTER;
+		}
+
+		// terminate
+		used = 0;
+		if (allocated > 0)
+		{
+			used = allocated - 1;
+			array[used] = 0;
+		}
+		return *this;
+	}
+
+
+	//! Gets the last char of the ustring16, or 0.
+	//! \return The last char of the ustring16, or 0.
+	uchar32_t lastChar() const
+	{
+		if (used < 1)
+			return 0;
+
+		if (UTF16_IS_SURROGATE_LO(array[used-1]))
+		{
+			// Make sure we have a paired surrogate.
+			if (used < 2)
+				return 0;
+
+			// Check for an invalid surrogate.
+			if (!UTF16_IS_SURROGATE_HI(array[used-2]))
+				return 0;
+
+			// Convert the surrogate pair into a single UTF-32 character.
+			return unicode::toUTF32(array[used-2], array[used-1]);
+		}
+		else
+		{
+			return array[used-1];
+		}
+	}
+
+
+	//! Split the ustring16 into parts.
+	/** This method will split a ustring16 at certain delimiter characters
+	into the container passed in as reference. The type of the container
+	has to be given as template parameter. It must provide a push_back and
+	a size method.
+	\param ret The result container
+	\param c C-style ustring16 of delimiter characters
+	\param count Number of delimiter characters
+	\param ignoreEmptyTokens Flag to avoid empty substrings in the result
+	container. If two delimiters occur without a character in between, an
+	empty substring would be placed in the result. If this flag is set,
+	only non-empty strings are stored.
+	\param keepSeparators Flag which allows to add the separator to the
+	result ustring16. If this flag is true, the concatenation of the
+	substrings results in the original ustring16. Otherwise, only the
+	characters between the delimiters are returned.
+	\return The number of resulting substrings
+	*/
+	template<class container>
+	u32 split(container& ret, const uchar32_t* const c, u32 count=1, bool ignoreEmptyTokens=true, bool keepSeparators=false) const
+	{
+		if (!c)
+			return 0;
+
+		const_iterator i(*this);
+		const u32 oldSize=ret.size();
+		u32 pos = 0;
+		u32 lastpos = 0;
+		u32 lastpospos = 0;
+		bool lastWasSeparator = false;
+		while (!i.atEnd())
+		{
+			uchar32_t ch = *i;
+			bool foundSeparator = false;
+			for (u32 j=0; j<count; ++j)
+			{
+				if (ch == c[j])
+				{
+					if ((!ignoreEmptyTokens || pos - lastpos != 0) &&
+							!lastWasSeparator)
+					ret.push_back(ustring16<TAlloc>(&array[lastpospos], pos - lastpos));
+					foundSeparator = true;
+					lastpos = (keepSeparators ? pos : pos + 1);
+					lastpospos = (keepSeparators ? i.getPos() : i.getPos() + 1);
+					break;
+				}
+			}
+			lastWasSeparator = foundSeparator;
+			++pos;
+			++i;
+		}
+		u32 s = size() + 1;
+		if (s > lastpos)
+			ret.push_back(ustring16<TAlloc>(&array[lastpospos], s - lastpos));
+		return ret.size()-oldSize;
+	}
+
+
+	//! Split the ustring16 into parts.
+	/** This method will split a ustring16 at certain delimiter characters
+	into the container passed in as reference. The type of the container
+	has to be given as template parameter. It must provide a push_back and
+	a size method.
+	\param ret The result container
+	\param c A unicode string of delimiter characters
+	\param ignoreEmptyTokens Flag to avoid empty substrings in the result
+	container. If two delimiters occur without a character in between, an
+	empty substring would be placed in the result. If this flag is set,
+	only non-empty strings are stored.
+	\param keepSeparators Flag which allows to add the separator to the
+	result ustring16. If this flag is true, the concatenation of the
+	substrings results in the original ustring16. Otherwise, only the
+	characters between the delimiters are returned.
+	\return The number of resulting substrings
+	*/
+	template<class container>
+	u32 split(container& ret, const ustring16<TAlloc>& c, bool ignoreEmptyTokens=true, bool keepSeparators=false) const
+	{
+		core::array<uchar32_t> v = c.toUTF32();
+		return split(ret, v.pointer(), v.size(), ignoreEmptyTokens, keepSeparators);
+	}
+
+
+	//! Gets the size of the allocated memory buffer for the string.
+	//! \return The size of the allocated memory buffer.
+	u32 capacity() const
+	{
+		return allocated;
+	}
+
+
+	//! Returns the raw number of UTF-16 code points in the string which includes the individual surrogates.
+	//! \return The raw number of UTF-16 code points, excluding the trialing NUL.
+	u32 size_raw() const
+	{
+		return used;
+	}
+
+
+	//! Inserts a character into the string.
+	//! \param c The character to insert.
+	//! \param pos The position to insert the character.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& insert(uchar32_t c, u32 pos)
+	{
+		u8 len = (c > 0xFFFF ? 2 : 1);
+
+		if (used + len >= allocated)
+			reallocate(used + len);
+
+		used += len;
+
+		iterator iter(*this, pos);
+		for (u32 i = used - 2; i > iter.getPos(); --i)
+			array[i] = array[i - len];
+
+		if (c > 0xFFFF)
+		{
+			// c will be multibyte, so split it up into a surrogate pair.
+			uchar16_t x = static_cast<uchar16_t>(c);
+			uchar16_t vh = UTF16_HI_SURROGATE | ((((c >> 16) & ((1 << 5) - 1)) - 1) << 6) | (x >> 10);
+			uchar16_t vl = UTF16_LO_SURROGATE | (x & ((1 << 10) - 1));
+			array[iter.getPos()] = vh;
+			array[iter.getPos()+1] = vl;
+		}
+		else
+		{
+			array[iter.getPos()] = static_cast<uchar16_t>(c);
+		}
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Inserts a string into the string.
+	//! \param c The string to insert.
+	//! \param pos The position to insert the string.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& insert(const ustring16<TAlloc>& c, u32 pos)
+	{
+		u32 len = c.size_raw();
+		if (len == 0) return *this;
+
+		if (used + len >= allocated)
+			reallocate(used + len);
+
+		used += len;
+
+		iterator iter(*this, pos);
+		for (u32 i = used - 2; i > iter.getPos() + len; --i)
+			array[i] = array[i - len];
+
+		const uchar16_t* s = c.c_str();
+		for (u32 i = 0; i < len; ++i)
+		{
+			array[pos++] = *s;
+			++s;
+		}
+
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Inserts a character into the string.
+	//! \param c The character to insert.
+	//! \param pos The position to insert the character.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& insert_raw(uchar16_t c, u32 pos)
+	{
+		if (used + 1 >= allocated)
+			reallocate(used + 1);
+
+		++used;
+
+		for (u32 i = used - 1; i > pos; --i)
+			array[i] = array[i - 1];
+
+		array[pos] = c;
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Removes a character from string.
+	//! \param pos Position of the character to remove.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& erase_raw(u32 pos)
+	{
+		for (u32 i=pos; i<=used; ++i)
+		{
+			array[i] = array[i + 1];
+		}
+		--used;
+		array[used] = 0;
+		return *this;
+	}
+
+
+	//! Replaces a character in the string.
+	//! \param c The new character.
+	//! \param pos The position of the character to replace.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& replace_raw(uchar16_t c, u32 pos)
+	{
+		array[pos] = c;
+		return *this;
+	}
+
+
+	//! Returns an iterator to the beginning of the string.
+	//! \return An iterator to the beginning of the string.
+	iterator begin()
+	{
+		iterator i(*this, 0);
+		return i;
+	}
+
+
+	//! Returns an iterator to the beginning of the string.
+	//! \return An iterator to the beginning of the string.
+	const_iterator begin() const
+	{
+		const_iterator i(*this, 0);
+		return i;
+	}
+
+
+	//! Returns an iterator to the beginning of the string.
+	//! \return An iterator to the beginning of the string.
+	const_iterator cbegin() const
+	{
+		const_iterator i(*this, 0);
+		return i;
+	}
+
+
+	//! Returns an iterator to the end of the string.
+	//! \return An iterator to the end of the string.
+	iterator end()
+	{
+		iterator i(*this, 0);
+		i.toEnd();
+		return i;
+	}
+
+
+	//! Returns an iterator to the end of the string.
+	//! \return An iterator to the end of the string.
+	const_iterator end() const
+	{
+		const_iterator i(*this, 0);
+		i.toEnd();
+		return i;
+	}
+
+
+	//! Returns an iterator to the end of the string.
+	//! \return An iterator to the end of the string.
+	const_iterator cend() const
+	{
+		const_iterator i(*this, 0);
+		i.toEnd();
+		return i;
+	}
+
+
+	//! Converts the string to a UTF-8 encoded string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return A string containing the UTF-8 encoded string.
+	core::string<uchar8_t> toUTF8_s(const bool addBOM = false) const
+	{
+		core::string<uchar8_t> ret;
+		ret.reserve(used * 4 + (addBOM ? unicode::BOM_UTF8_LEN : 0) + 1);
+		const_iterator iter(*this, 0);
+
+		// Add the byte order mark if the user wants it.
+		if (addBOM)
+		{
+			ret.append(unicode::BOM_ENCODE_UTF8[0]);
+			ret.append(unicode::BOM_ENCODE_UTF8[1]);
+			ret.append(unicode::BOM_ENCODE_UTF8[2]);
+		}
+
+		while (!iter.atEnd())
+		{
+			uchar32_t c = *iter;
+			if (c > 0xFFFF)
+			{	// 4 bytes
+				uchar8_t b1 = (0x1E << 3) | ((c >> 18) & 0x7);
+				uchar8_t b2 = (0x2 << 6) | ((c >> 12) & 0x3F);
+				uchar8_t b3 = (0x2 << 6) | ((c >> 6) & 0x3F);
+				uchar8_t b4 = (0x2 << 6) | (c & 0x3F);
+				ret.append(b1);
+				ret.append(b2);
+				ret.append(b3);
+				ret.append(b4);
+			}
+			else if (c > 0x7FF)
+			{	// 3 bytes
+				uchar8_t b1 = (0xE << 4) | ((c >> 12) & 0xF);
+				uchar8_t b2 = (0x2 << 6) | ((c >> 6) & 0x3F);
+				uchar8_t b3 = (0x2 << 6) | (c & 0x3F);
+				ret.append(b1);
+				ret.append(b2);
+				ret.append(b3);
+			}
+			else if (c > 0x7F)
+			{	// 2 bytes
+				uchar8_t b1 = (0x6 << 5) | ((c >> 6) & 0x1F);
+				uchar8_t b2 = (0x2 << 6) | (c & 0x3F);
+				ret.append(b1);
+				ret.append(b2);
+			}
+			else
+			{	// 1 byte
+				ret.append(static_cast<uchar8_t>(c));
+			}
+			++iter;
+		}
+		return ret;
+	}
+
+
+	//! Converts the string to a UTF-8 encoded string array.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return An array containing the UTF-8 encoded string.
+	core::array<uchar8_t> toUTF8(const bool addBOM = false) const
+	{
+		core::array<uchar8_t> ret(used * 4 + (addBOM ? unicode::BOM_UTF8_LEN : 0) + 1);
+		const_iterator iter(*this, 0);
+
+		// Add the byte order mark if the user wants it.
+		if (addBOM)
+		{
+			ret.push_back(unicode::BOM_ENCODE_UTF8[0]);
+			ret.push_back(unicode::BOM_ENCODE_UTF8[1]);
+			ret.push_back(unicode::BOM_ENCODE_UTF8[2]);
+		}
+
+		while (!iter.atEnd())
+		{
+			uchar32_t c = *iter;
+			if (c > 0xFFFF)
+			{	// 4 bytes
+				uchar8_t b1 = (0x1E << 3) | ((c >> 18) & 0x7);
+				uchar8_t b2 = (0x2 << 6) | ((c >> 12) & 0x3F);
+				uchar8_t b3 = (0x2 << 6) | ((c >> 6) & 0x3F);
+				uchar8_t b4 = (0x2 << 6) | (c & 0x3F);
+				ret.push_back(b1);
+				ret.push_back(b2);
+				ret.push_back(b3);
+				ret.push_back(b4);
+			}
+			else if (c > 0x7FF)
+			{	// 3 bytes
+				uchar8_t b1 = (0xE << 4) | ((c >> 12) & 0xF);
+				uchar8_t b2 = (0x2 << 6) | ((c >> 6) & 0x3F);
+				uchar8_t b3 = (0x2 << 6) | (c & 0x3F);
+				ret.push_back(b1);
+				ret.push_back(b2);
+				ret.push_back(b3);
+			}
+			else if (c > 0x7F)
+			{	// 2 bytes
+				uchar8_t b1 = (0x6 << 5) | ((c >> 6) & 0x1F);
+				uchar8_t b2 = (0x2 << 6) | (c & 0x3F);
+				ret.push_back(b1);
+				ret.push_back(b2);
+			}
+			else
+			{	// 1 byte
+				ret.push_back(static_cast<uchar8_t>(c));
+			}
+			++iter;
+		}
+		ret.push_back(0);
+		return ret;
+	}
+
+
+#ifdef USTRING_CPP0X_NEWLITERALS	// C++0x
+	//! Converts the string to a UTF-16 encoded string.
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return A string containing the UTF-16 encoded string.
+	core::string<char16_t> toUTF16_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+		core::string<char16_t> ret;
+		ret.reserve(used + (addBOM ? unicode::BOM_UTF16_LEN : 0) + 1);
+
+		// Add the BOM if specified.
+		if (addBOM)
+		{
+			if (endian == unicode::EUTFEE_NATIVE)
+				ret[0] = unicode::BOM;
+			else if (endian == unicode::EUTFEE_LITTLE)
+			{
+				uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ret.c_str());
+				*ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0];
+				*ptr8 = unicode::BOM_ENCODE_UTF16_LE[1];
+			}
+			else
+			{
+				uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ret.c_str());
+				*ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0];
+				*ptr8 = unicode::BOM_ENCODE_UTF16_BE[1];
+			}
+		}
+
+		ret.append(array);
+		if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian)
+		{
+			char16_t* ptr = ret.c_str();
+			for (u32 i = 0; i < ret.size(); ++i)
+				*ptr++ = unicode::swapEndian16(*ptr);
+		}
+		return ret;
+	}
+#endif
+
+
+	//! Converts the string to a UTF-16 encoded string array.
+	//! Unfortunately, no toUTF16_s() version exists due to limitations with Irrlicht's string class.
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return An array containing the UTF-16 encoded string.
+	core::array<uchar16_t> toUTF16(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+		core::array<uchar16_t> ret(used + (addBOM ? unicode::BOM_UTF16_LEN : 0) + 1);
+		uchar16_t* ptr = ret.pointer();
+
+		// Add the BOM if specified.
+		if (addBOM)
+		{
+			if (endian == unicode::EUTFEE_NATIVE)
+				*ptr = unicode::BOM;
+			else if (endian == unicode::EUTFEE_LITTLE)
+			{
+				uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ptr);
+				*ptr8++ = unicode::BOM_ENCODE_UTF16_LE[0];
+				*ptr8 = unicode::BOM_ENCODE_UTF16_LE[1];
+			}
+			else
+			{
+				uchar8_t* ptr8 = reinterpret_cast<uchar8_t*>(ptr);
+				*ptr8++ = unicode::BOM_ENCODE_UTF16_BE[0];
+				*ptr8 = unicode::BOM_ENCODE_UTF16_BE[1];
+			}
+			++ptr;
+		}
+
+		memcpy((void*)ptr, (void*)array, used * sizeof(uchar16_t));
+		if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian)
+		{
+			for (u32 i = 0; i <= used; ++i)
+				*ptr++ = unicode::swapEndian16(*ptr);
+		}
+		ret.set_used(used + (addBOM ? unicode::BOM_UTF16_LEN : 0));
+		ret.push_back(0);
+		return ret;
+	}
+
+
+#ifdef USTRING_CPP0X_NEWLITERALS	// C++0x
+	//! Converts the string to a UTF-32 encoded string.
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return A string containing the UTF-32 encoded string.
+	core::string<char32_t> toUTF32_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+		core::string<char32_t> ret;
+		ret.reserve(size() + 1 + (addBOM ? unicode::BOM_UTF32_LEN : 0));
+		const_iterator iter(*this, 0);
+
+		// Add the BOM if specified.
+		if (addBOM)
+		{
+			if (endian == unicode::EUTFEE_NATIVE)
+				ret.append(unicode::BOM);
+			else
+			{
+				union
+				{
+					uchar32_t full;
+					u8 chunk[4];
+				} t;
+
+				if (endian == unicode::EUTFEE_LITTLE)
+				{
+					t.chunk[0] = unicode::BOM_ENCODE_UTF32_LE[0];
+					t.chunk[1] = unicode::BOM_ENCODE_UTF32_LE[1];
+					t.chunk[2] = unicode::BOM_ENCODE_UTF32_LE[2];
+					t.chunk[3] = unicode::BOM_ENCODE_UTF32_LE[3];
+				}
+				else
+				{
+					t.chunk[0] = unicode::BOM_ENCODE_UTF32_BE[0];
+					t.chunk[1] = unicode::BOM_ENCODE_UTF32_BE[1];
+					t.chunk[2] = unicode::BOM_ENCODE_UTF32_BE[2];
+					t.chunk[3] = unicode::BOM_ENCODE_UTF32_BE[3];
+				}
+				ret.append(t.full);
+			}
+		}
+
+		while (!iter.atEnd())
+		{
+			uchar32_t c = *iter;
+			if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian)
+				c = unicode::swapEndian32(c);
+			ret.append(c);
+			++iter;
+		}
+		return ret;
+	}
+#endif
+
+
+	//! Converts the string to a UTF-32 encoded string array.
+	//! Unfortunately, no toUTF32_s() version exists due to limitations with Irrlicht's string class.
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return An array containing the UTF-32 encoded string.
+	core::array<uchar32_t> toUTF32(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+		core::array<uchar32_t> ret(size() + (addBOM ? unicode::BOM_UTF32_LEN : 0) + 1);
+		const_iterator iter(*this, 0);
+
+		// Add the BOM if specified.
+		if (addBOM)
+		{
+			if (endian == unicode::EUTFEE_NATIVE)
+				ret.push_back(unicode::BOM);
+			else
+			{
+				union
+				{
+					uchar32_t full;
+					u8 chunk[4];
+				} t;
+
+				if (endian == unicode::EUTFEE_LITTLE)
+				{
+					t.chunk[0] = unicode::BOM_ENCODE_UTF32_LE[0];
+					t.chunk[1] = unicode::BOM_ENCODE_UTF32_LE[1];
+					t.chunk[2] = unicode::BOM_ENCODE_UTF32_LE[2];
+					t.chunk[3] = unicode::BOM_ENCODE_UTF32_LE[3];
+				}
+				else
+				{
+					t.chunk[0] = unicode::BOM_ENCODE_UTF32_BE[0];
+					t.chunk[1] = unicode::BOM_ENCODE_UTF32_BE[1];
+					t.chunk[2] = unicode::BOM_ENCODE_UTF32_BE[2];
+					t.chunk[3] = unicode::BOM_ENCODE_UTF32_BE[3];
+				}
+				ret.push_back(t.full);
+			}
+		}
+		ret.push_back(0);
+
+		while (!iter.atEnd())
+		{
+			uchar32_t c = *iter;
+			if (endian != unicode::EUTFEE_NATIVE && getEndianness() != endian)
+				c = unicode::swapEndian32(c);
+			ret.push_back(c);
+			++iter;
+		}
+		return ret;
+	}
+
+
+	//! Converts the string to a wchar_t encoded string.
+	/** The size of a wchar_t changes depending on the platform.  This function will store a
+	correct UTF-8, -16, or -32 encoded string depending on the size of a wchar_t. **/
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return A string containing the wchar_t encoded string.
+	core::string<wchar_t> toWCHAR_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+		if (sizeof(wchar_t) == 4)
+		{
+			core::array<uchar32_t> a(toUTF32(endian, addBOM));
+			core::stringw ret(a.pointer());
+			return ret;
+		}
+		else if (sizeof(wchar_t) == 2)
+		{
+			if (endian == unicode::EUTFEE_NATIVE && addBOM == false)
+			{
+				core::stringw ret(array);
+				return ret;
+			}
+			else
+			{
+				core::array<uchar16_t> a(toUTF16(endian, addBOM));
+				core::stringw ret(a.pointer());
+				return ret;
+			}
+		}
+		else if (sizeof(wchar_t) == 1)
+		{
+			core::array<uchar8_t> a(toUTF8(addBOM));
+			core::stringw ret(a.pointer());
+			return ret;
+		}
+
+		// Shouldn't happen.
+		return core::stringw();
+	}
+
+
+	//! Converts the string to a wchar_t encoded string array.
+	/** The size of a wchar_t changes depending on the platform.  This function will store a
+	correct UTF-8, -16, or -32 encoded string depending on the size of a wchar_t. **/
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return An array containing the wchar_t encoded string.
+	core::array<wchar_t> toWCHAR(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+		if (sizeof(wchar_t) == 4)
+		{
+			core::array<uchar32_t> a(toUTF32(endian, addBOM));
+			core::array<wchar_t> ret(a.size());
+			ret.set_used(a.size());
+			memcpy((void*)ret.pointer(), (void*)a.pointer(), a.size() * sizeof(uchar32_t));
+			return ret;
+		}
+		if (sizeof(wchar_t) == 2)
+		{
+			if (endian == unicode::EUTFEE_NATIVE && addBOM == false)
+			{
+				core::array<wchar_t> ret(used);
+				ret.set_used(used);
+				memcpy((void*)ret.pointer(), (void*)array, used * sizeof(uchar16_t));
+				return ret;
+			}
+			else
+			{
+				core::array<uchar16_t> a(toUTF16(endian, addBOM));
+				core::array<wchar_t> ret(a.size());
+				ret.set_used(a.size());
+				memcpy((void*)ret.pointer(), (void*)a.pointer(), a.size() * sizeof(uchar16_t));
+				return ret;
+			}
+		}
+		if (sizeof(wchar_t) == 1)
+		{
+			core::array<uchar8_t> a(toUTF8(addBOM));
+			core::array<wchar_t> ret(a.size());
+			ret.set_used(a.size());
+			memcpy((void*)ret.pointer(), (void*)a.pointer(), a.size() * sizeof(uchar8_t));
+			return ret;
+		}
+
+		// Shouldn't happen.
+		return core::array<wchar_t>();
+	}
+
+	//! Converts the string to a properly encoded io::path string.
+	//! \param endian The desired endianness of the string.
+	//! \param addBOM If true, the proper unicode byte-order mark will be prefixed to the string.
+	//! \return An io::path string containing the properly encoded string.
+	io::path toPATH_s(const unicode::EUTF_ENDIAN endian = unicode::EUTFEE_NATIVE, const bool addBOM = false) const
+	{
+#if defined(_IRR_WCHAR_FILESYSTEM)
+		return toWCHAR_s(endian, addBOM);
+#else
+		return toUTF8_s(addBOM);
+#endif
+	}
+
+	//! Loads an unknown stream of data.
+	//! Will attempt to determine if the stream is unicode data.  Useful for loading from files.
+	//! \param data The data stream to load from.
+	//! \param data_size The length of the data string.
+	//! \return A reference to our current string.
+	ustring16<TAlloc>& loadDataStream(const char* data, size_t data_size)
+	{
+		// Clear our string.
+		*this = "";
+		if (!data)
+			return *this;
+
+		unicode::EUTF_ENCODE e = unicode::determineUnicodeBOM(data);
+		switch (e)
+		{
+			default:
+			case unicode::EUTFE_UTF8:
+				append((uchar8_t*)data, data_size);
+				break;
+
+			case unicode::EUTFE_UTF16:
+			case unicode::EUTFE_UTF16_BE:
+			case unicode::EUTFE_UTF16_LE:
+				append((uchar16_t*)data, data_size / 2);
+				break;
+
+			case unicode::EUTFE_UTF32:
+			case unicode::EUTFE_UTF32_BE:
+			case unicode::EUTFE_UTF32_LE:
+				append((uchar32_t*)data, data_size / 4);
+				break;
+		}
+
+		return *this;
+	}
+
+	//! Gets the encoding of the Unicode string this class contains.
+	//! \return An enum describing the current encoding of this string.
+	const unicode::EUTF_ENCODE getEncoding() const
+	{
+		return encoding;
+	}
+
+	//! Gets the endianness of the Unicode string this class contains.
+	//! \return An enum describing the endianness of this string.
+	const unicode::EUTF_ENDIAN getEndianness() const
+	{
+		if (encoding == unicode::EUTFE_UTF16_LE ||
+			encoding == unicode::EUTFE_UTF32_LE)
+			return unicode::EUTFEE_LITTLE;
+		else return unicode::EUTFEE_BIG;
+	}
+
+private:
+
+	//! Reallocate the string, making it bigger or smaller.
+	//! \param new_size The new size of the string.
+	void reallocate(u32 new_size)
+	{
+		uchar16_t* old_array = array;
+
+		array = allocator.allocate(new_size + 1); //new u16[new_size];
+		allocated = new_size + 1;
+		if (old_array == 0) return;
+
+		u32 amount = used < new_size ? used : new_size;
+		for (u32 i=0; i<=amount; ++i)
+			array[i] = old_array[i];
+
+		if (allocated <= used)
+			used = allocated - 1;
+
+		array[used] = 0;
+
+		allocator.deallocate(old_array); // delete [] old_array;
+	}
+
+	//--- member variables
+
+	uchar16_t* array;
+	unicode::EUTF_ENCODE encoding;
+	u32 allocated;
+	u32 used;
+	TAlloc allocator;
+	//irrAllocator<uchar16_t> allocator;
+};
+
+typedef ustring16<irrAllocator<uchar16_t> > ustring;
+
+
+//! Appends two ustring16s.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a null-terminated unicode string.
+template <typename TAlloc, class B>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const B* const right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a null-terminated unicode string.
+template <class B, typename TAlloc>
+inline ustring16<TAlloc> operator+(const B* const left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and an Irrlicht string.
+template <typename TAlloc, typename B, typename BAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const string<B, BAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and an Irrlicht string.
+template <typename TAlloc, typename B, typename BAlloc>
+inline ustring16<TAlloc> operator+(const string<B, BAlloc>& left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a std::basic_string.
+template <typename TAlloc, typename B, typename A, typename BAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const std::basic_string<B, A, BAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a std::basic_string.
+template <typename TAlloc, typename B, typename A, typename BAlloc>
+inline ustring16<TAlloc> operator+(const std::basic_string<B, A, BAlloc>& left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a char.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const char right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a char.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const char left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+#ifdef USTRING_CPP0X_NEWLITERALS
+//! Appends a ustring16 and a uchar32_t.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const uchar32_t right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a uchar32_t.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const uchar32_t left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += right;
+	return ret;
+}
+#endif
+
+
+//! Appends a ustring16 and a short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const short right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and a short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const short left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and an unsigned short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const unsigned short right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and an unsigned short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const unsigned short left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and an int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const int right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and an int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const int left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and an unsigned int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const unsigned int right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and an unsigned int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const unsigned int left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const long right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and a long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const long left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and an unsigned long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const unsigned long right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and an unsigned long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const unsigned long left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a float.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const float right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and a float.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const float left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+//! Appends a ustring16 and a double.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const ustring16<TAlloc>& left, const double right)
+{
+	ustring16<TAlloc> ret(left);
+	ret += core::stringc(right);
+	return ret;
+}
+
+
+//! Appends a ustring16 and a double.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const double left, const ustring16<TAlloc>& right)
+{
+	ustring16<TAlloc> ret(core::stringc(left));
+	ret += right;
+	return ret;
+}
+
+
+#ifdef USTRING_CPP0X
+//! Appends two ustring16s.
+template <typename TAlloc>
+inline ustring16<TAlloc>&& operator+(const ustring16<TAlloc>& left, ustring16<TAlloc>&& right)
+{
+	//std::cout << "MOVE operator+(&, &&)" << std::endl;
+	right.insert(left, 0);
+	return std::move(right);
+}
+
+
+//! Appends two ustring16s.
+template <typename TAlloc>
+inline ustring16<TAlloc>&& operator+(ustring16<TAlloc>&& left, const ustring16<TAlloc>& right)
+{
+	//std::cout << "MOVE operator+(&&, &)" << std::endl;
+	left.append(right);
+	return std::move(left);
+}
+
+
+//! Appends two ustring16s.
+template <typename TAlloc>
+inline ustring16<TAlloc>&& operator+(ustring16<TAlloc>&& left, ustring16<TAlloc>&& right)
+{
+	//std::cout << "MOVE operator+(&&, &&)" << std::endl;
+	if ((right.size_raw() <= left.capacity() - left.size_raw()) ||
+		(right.capacity() - right.size_raw() < left.size_raw()))
+	{
+		left.append(right);
+		return std::move(left);
+	}
+	else
+	{
+		right.insert(left, 0);
+		return std::move(right);
+	}
+}
+
+
+//! Appends a ustring16 and a null-terminated unicode string.
+template <typename TAlloc, class B>
+inline ustring16<TAlloc>&& operator+(ustring16<TAlloc>&& left, const B* const right)
+{
+	//std::cout << "MOVE operator+(&&, B*)" << std::endl;
+	left.append(right);
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a null-terminated unicode string.
+template <class B, typename TAlloc>
+inline ustring16<TAlloc>&& operator+(const B* const left, ustring16<TAlloc>&& right)
+{
+	//std::cout << "MOVE operator+(B*, &&)" << std::endl;
+	right.insert(left, 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and an Irrlicht string.
+template <typename TAlloc, typename B, typename BAlloc>
+inline ustring16<TAlloc>&& operator+(const string<B, BAlloc>& left, ustring16<TAlloc>&& right)
+{
+	//std::cout << "MOVE operator+(&, &&)" << std::endl;
+	right.insert(left, 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and an Irrlicht string.
+template <typename TAlloc, typename B, typename BAlloc>
+inline ustring16<TAlloc>&& operator+(ustring16<TAlloc>&& left, const string<B, BAlloc>& right)
+{
+	//std::cout << "MOVE operator+(&&, &)" << std::endl;
+	left.append(right);
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a std::basic_string.
+template <typename TAlloc, typename B, typename A, typename BAlloc>
+inline ustring16<TAlloc>&& operator+(const std::basic_string<B, A, BAlloc>& left, ustring16<TAlloc>&& right)
+{
+	//std::cout << "MOVE operator+(&, &&)" << std::endl;
+	right.insert(core::ustring16<TAlloc>(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and a std::basic_string.
+template <typename TAlloc, typename B, typename A, typename BAlloc>
+inline ustring16<TAlloc>&& operator+(ustring16<TAlloc>&& left, const std::basic_string<B, A, BAlloc>& right)
+{
+	//std::cout << "MOVE operator+(&&, &)" << std::endl;
+	left.append(right);
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a char.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const char right)
+{
+	left.append((uchar32_t)right);
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a char.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const char left, ustring16<TAlloc>&& right)
+{
+	right.insert((uchar32_t)left, 0);
+	return std::move(right);
+}
+
+
+#ifdef USTRING_CPP0X_NEWLITERALS
+//! Appends a ustring16 and a uchar32_t.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const uchar32_t right)
+{
+	left.append(right);
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a uchar32_t.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const uchar32_t left, ustring16<TAlloc>&& right)
+{
+	right.insert(left, 0);
+	return std::move(right);
+}
+#endif
+
+
+//! Appends a ustring16 and a short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const short right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const short left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and an unsigned short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const unsigned short right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and an unsigned short.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const unsigned short left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and an int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const int right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and an int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const int left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and an unsigned int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const unsigned int right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and an unsigned int.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const unsigned int left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and a long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const long right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const long left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and an unsigned long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const unsigned long right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and an unsigned long.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const unsigned long left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and a float.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const float right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a float.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const float left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+
+
+//! Appends a ustring16 and a double.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(ustring16<TAlloc>&& left, const double right)
+{
+	left.append(core::stringc(right));
+	return std::move(left);
+}
+
+
+//! Appends a ustring16 and a double.
+template <typename TAlloc>
+inline ustring16<TAlloc> operator+(const double left, ustring16<TAlloc>&& right)
+{
+	right.insert(core::stringc(left), 0);
+	return std::move(right);
+}
+#endif
+
+
+#ifndef USTRING_NO_STL
+//! Writes a ustring16 to an ostream.
+template <typename TAlloc>
+inline std::ostream& operator<<(std::ostream& out, const ustring16<TAlloc>& in)
+{
+	out << in.toUTF8_s().c_str();
+	return out;
+}
+
+//! Writes a ustring16 to a wostream.
+template <typename TAlloc>
+inline std::wostream& operator<<(std::wostream& out, const ustring16<TAlloc>& in)
+{
+	out << in.toWCHAR_s().c_str();
+	return out;
+}
+#endif
+
+
+#ifndef USTRING_NO_STL
+
+namespace unicode
+{
+
+//! Hashing algorithm for hashing a ustring.  Used for things like unordered_maps.
+//! Algorithm taken from std::hash<std::string>.
+class hash : public std::unary_function<core::ustring, size_t>
+{
+	public:
+		size_t operator()(const core::ustring& s) const
+		{
+			size_t ret = 2166136261U;
+			size_t index = 0;
+			size_t stride = 1 + s.size_raw() / 10;
+
+			core::ustring::const_iterator i = s.begin();
+			while (i != s.end())
+			{
+				// TODO: Don't force u32 on an x64 OS.  Make it agnostic.
+				ret = 16777619U * ret ^ (size_t)s[(u32)index];
+				index += stride;
+				i += stride;
+			}
+			return (ret);
+		}
+};
+
+} // end namespace unicode
+
+#endif
+
+} // end namespace core
+} // end namespace irr
+
+#endif
diff --git a/src/cguittfont/xCGUITTFont.cpp b/src/cguittfont/xCGUITTFont.cpp
new file mode 100644
index 000000000..c51922e4c
--- /dev/null
+++ b/src/cguittfont/xCGUITTFont.cpp
@@ -0,0 +1,5 @@
+// A wrapper source file to avoid hack with gcc and modifying
+// the CGUITTFont files.
+
+#include "xCGUITTFont.h"
+#include "CGUITTFont.cpp"
diff --git a/src/cguittfont/xCGUITTFont.h b/src/cguittfont/xCGUITTFont.h
new file mode 100644
index 000000000..c3efe7f6f
--- /dev/null
+++ b/src/cguittfont/xCGUITTFont.h
@@ -0,0 +1,7 @@
+// A wrapper header to avoid hack with gcc and modifying
+// the CGUITTFont files.
+
+#include <algorithm>
+#include <stddef.h>
+#include "irrUString.h"
+#include "CGUITTFont.h"
diff --git a/src/cmake_config.h.in b/src/cmake_config.h.in
index 4853d854f..51827cce6 100644
--- a/src/cmake_config.h.in
+++ b/src/cmake_config.h.in
@@ -9,6 +9,7 @@
 #define CMAKE_USE_GETTEXT @USE_GETTEXT@
 #define CMAKE_USE_CURL @USE_CURL@
 #define CMAKE_USE_SOUND @USE_SOUND@
+#define CMAKE_USE_FREETYPE @USE_FREETYPE@
 #define CMAKE_STATIC_SHAREDIR "@SHAREDIR@"
 
 #ifdef NDEBUG
diff --git a/src/config.h b/src/config.h
index f37ec0fed..37dc6e0ef 100644
--- a/src/config.h
+++ b/src/config.h
@@ -12,6 +12,7 @@
 #define USE_GETTEXT 0
 #define USE_SOUND 0
 #define USE_CURL 0
+#define USE_FREETYPE 0
 #define STATIC_SHAREDIR ""
 #define BUILD_INFO "non-cmake"
 
@@ -29,6 +30,8 @@
 	#define USE_SOUND CMAKE_USE_SOUND
 	#undef USE_CURL
 	#define USE_CURL CMAKE_USE_CURL
+	#undef USE_FREETYPE
+	#define USE_FREETYPE CMAKE_USE_FREETYPE
 	#undef STATIC_SHAREDIR
 	#define STATIC_SHAREDIR CMAKE_STATIC_SHAREDIR
 	#undef BUILD_INFO
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 1c673f76c..aebdc0aa8 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -18,6 +18,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include "settings.h"
+#include "filesys.h"
 
 void set_default_settings(Settings *settings)
 {
@@ -132,6 +133,11 @@ void set_default_settings(Settings *settings)
 	settings->setDefault("serverlist_url", "servers.minetest.ru/server.list");
 	settings->setDefault("serverlist_file", "favoriteservers.txt");
 
+	settings->setDefault("font_path", porting::getDataPath("fonts" DIR_DELIM "liberationsans.ttf"));
+	settings->setDefault("font_size", "13");
+	settings->setDefault("mono_font_path", porting::getDataPath("fonts" DIR_DELIM "liberationmono.ttf"));
+	settings->setDefault("mono_font_size", "13");
+
 	// Server stuff
 	// "map-dir" doesn't exist by default.
 	settings->setDefault("default_game", "minetest");
diff --git a/src/gettext.h b/src/gettext.h
index 54470cb0d..452787de4 100644
--- a/src/gettext.h
+++ b/src/gettext.h
@@ -12,6 +12,11 @@
 #define gettext_noop(String) String
 #define N_(String) gettext_noop (String)
 
+#if defined(_WIN32)
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#endif
+
 inline void init_gettext(const char *path) {
 #if USE_GETTEXT
 	// don't do this if MSVC compiler is used, it gives an assertion fail
@@ -20,14 +25,44 @@ inline void init_gettext(const char *path) {
 	#endif
 	bindtextdomain(PROJECT_NAME, path);
 	textdomain(PROJECT_NAME);
+#if defined(_WIN32)
+	// As linux is successfully switched to UTF-8 completely at about year 2005
+	// Windows still uses obsolete codepage based locales because you
+	// cannot recompile closed-source applications
+
+	// Set character encoding for Win32
+	char *tdomain = textdomain( (char *) NULL );
+	if( tdomain == NULL )
+	{
+		fprintf( stderr, "warning: domainname parameter is the null pointer, default domain is not set\n" );
+		tdomain = (char *) "messages";
+	}
+	/*char *codeset = */bind_textdomain_codeset( tdomain, "UTF-8" );
+	//fprintf( stdout, "%s: debug: domainname = %s; codeset = %s\n", argv[0], tdomain, codeset );
+#endif // defined(_WIN32)
 #endif
 }
 
 inline wchar_t* chartowchar_t(const char *str)
 {
+	wchar_t* nstr = 0;
+#if defined(_WIN32)
+	int nResult = MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) str, -1, 0, 0 );
+	if( nResult == 0 )
+	{
+		fprintf( stderr, "error: MultiByteToWideChar returned null\n" );
+	}
+	else
+	{
+		nstr = new wchar_t[nResult];
+		MultiByteToWideChar( CP_UTF8, 0, (LPCSTR) str, -1, (WCHAR *) nstr, nResult );
+	}
+#else
 	size_t l = strlen(str)+1;
-	wchar_t* nstr = new wchar_t[l];
+	nstr = new wchar_t[l];
 	mbstowcs(nstr, str, l);
+#endif
+
 	return nstr;
 }
 
@@ -38,12 +73,12 @@ inline wchar_t* wgettext(const char *str)
 
 inline void changeCtype(const char *l)
 {
-	char *ret = NULL;
+	/*char *ret = NULL;
 	ret = setlocale(LC_CTYPE, l);
 	if(ret == NULL)
 		infostream<<"locale could not be set"<<std::endl;
 	else
-		infostream<<"locale has been set to:"<<ret<<std::endl;
+		infostream<<"locale has been set to:"<<ret<<std::endl;*/
 }
 #define GETTEXT_HEADER
 #endif
diff --git a/src/guiChatConsole.cpp b/src/guiChatConsole.cpp
index 0101b99bb..13883901e 100644
--- a/src/guiChatConsole.cpp
+++ b/src/guiChatConsole.cpp
@@ -32,6 +32,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "gettext.h"
 
+#if USE_FREETYPE
+#include "xCGUITTFont.h"
+#endif
+
 inline u32 clamp_u8(s32 value)
 {
 	return (u32) MYMIN(MYMAX(value, 0), 255);
@@ -90,8 +94,14 @@ GUIChatConsole::GUIChatConsole(
 
 	// load the font
 	// FIXME should a custom texture_path be searched too?
+	#if USE_FREETYPE
+	std::string font_name = g_settings->get("mono_font_path");
+	u16 font_size = g_settings->getU16("mono_font_size");
+	m_font = gui::CGUITTFont::createTTFont(env, font_name.c_str(), font_size);
+	#else
 	std::string font_name = "fontdejavusansmono.png";
 	m_font = env->getFont(getTexturePath(font_name).c_str());
+	#endif
 	if (m_font == NULL)
 	{
 		dstream << "Unable to load font: " << font_name << std::endl;
diff --git a/src/guiMainMenu.cpp b/src/guiMainMenu.cpp
index 9291bb4ec..343369643 100644
--- a/src/guiMainMenu.cpp
+++ b/src/guiMainMenu.cpp
@@ -260,7 +260,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			//const wchar_t *text = L"H\nY\nB\nR\nI\nD";
 			const wchar_t *text = L"T\nA\nP\nE\n\nA\nN\nD\n\nG\nL\nU\nE";
 			gui::IGUIStaticText *t =
-			Environment->addStaticText(text, rect, false, false, this, -1);
+			Environment->addStaticText(text, rect, false, true, this, -1);
 			t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
 		}
 		u32 bs = 5;
@@ -359,7 +359,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			rect += m_topleft_client + v2s32(15, 0);
 			const wchar_t *text = L"C\nL\nI\nE\nN\nT";
 			gui::IGUIStaticText *t =
-			Environment->addStaticText(text, rect, false, false, this, -1);
+			Environment->addStaticText(text, rect, false, true, this, -1);
 			t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
 		}
 		// Nickname + password
@@ -469,7 +469,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			rect += m_topleft_client + v2s32(15, 0);
 			const wchar_t *text = L"C\nL\nI\nE\nN\nT";
 			gui::IGUIStaticText *t =
-			Environment->addStaticText(text, rect, false, false, this, -1);
+			Environment->addStaticText(text, rect, false, true, this, -1);
 			t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
 		}
 		// Nickname + password
@@ -546,7 +546,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			rect += m_topleft_server + v2s32(15, 0);
 			const wchar_t *text = L"S\nE\nR\nV\nE\nR";
 			gui::IGUIStaticText *t =
-			Environment->addStaticText(text, rect, false, false, this, -1);
+			Environment->addStaticText(text, rect, false, true, this, -1);
 			t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
 		}
 		// Server parameters
@@ -598,7 +598,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			rect += m_topleft_client + v2s32(15, 0);
 			const wchar_t *text = L"S\nE\nT\nT\nI\nN\nG\nS";
 			gui::IGUIStaticText *t =
-			Environment->addStaticText(text, rect, false, false, this, -1);
+			Environment->addStaticText(text, rect, false, true, this, -1);
 			t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
 		}
 		s32 option_x = 70;
@@ -701,7 +701,7 @@ void GUIMainMenu::regenerateGui(v2u32 screensize)
 			rect += m_topleft_client + v2s32(15, 0);
 			const wchar_t *text = L"C\nR\nE\nD\nI\nT\nS";
 			gui::IGUIStaticText *t =
-			Environment->addStaticText(text, rect, false, false, this, -1);
+			Environment->addStaticText(text, rect, false, true, this, -1);
 			t->setTextAlignment(gui::EGUIA_CENTER, gui::EGUIA_CENTER);
 		}
 		{
diff --git a/src/guiTextInputMenu.cpp b/src/guiTextInputMenu.cpp
index 094532a62..857c26a45 100644
--- a/src/guiTextInputMenu.cpp
+++ b/src/guiTextInputMenu.cpp
@@ -29,6 +29,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "gettext.h"
 
+#if USE_FREETYPE
+#include "intlGUIEditBox.h"
+#endif
+
 GUITextInputMenu::GUITextInputMenu(gui::IGUIEnvironment* env,
 		gui::IGUIElement* parent, s32 id,
 		IMenuManager *menumgr,
@@ -105,8 +109,12 @@ void GUITextInputMenu::regenerateGui(v2u32 screensize)
 	{
 		core::rect<s32> rect(0, 0, 300, 30);
 		rect = rect + v2s32(size.X/2-300/2, size.Y/2-30/2-25);
-		gui::IGUIElement *e = 
-		Environment->addEditBox(text.c_str(), rect, true, this, 256);
+		#if USE_FREETYPE
+		gui::IGUIElement *e = (gui::IGUIElement *) new gui::intlGUIEditBox(text.c_str(), true, Environment, this, 256, rect);
+		e->drop();
+		#else
+		gui::IGUIElement *e = Environment->addEditBox(text.c_str(), rect, true, this, 256);
+		#endif
 		Environment->setFocus(e);
 
 		irr::SEvent evt;
diff --git a/src/intlGUIEditBox.cpp b/src/intlGUIEditBox.cpp
new file mode 100644
index 000000000..4add61e20
--- /dev/null
+++ b/src/intlGUIEditBox.cpp
@@ -0,0 +1,1508 @@
+// 11.11.2011 11:11 ValkaTR
+//
+// This is a copy of intlGUIEditBox from the irrlicht, but with a
+// fix in the OnEvent function, which doesn't allowed input of
+// other keyboard layouts than latin-1
+//
+// Characters like: ä ö ü õ ы й ю я ъ № € ° ...
+//
+// This fix is only needed for linux, because of a bug
+// in the CIrrDeviceLinux.cpp:1014-1015 of the irrlicht
+//
+// Also locale in the programm should not be changed to
+// a "C", "POSIX" or whatever, it should be set to "",
+// or XLookupString will return nothing for the international
+// characters.
+//
+// From the "man setlocale":
+//
+// On startup of the main program, the portable "C" locale
+// is selected as default.  A  program  may  be  made
+// portable to all locales by calling:
+//
+//           setlocale(LC_ALL, "");
+//
+//       after  program initialization....
+//
+
+// Copyright (C) 2002-2010 Nikolaus Gebhardt
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in irrlicht.h
+
+#include "intlGUIEditBox.h"
+
+#ifdef _IRR_COMPILE_WITH_GUI_
+
+#include "IGUISkin.h"
+#include "IGUIEnvironment.h"
+#include "IGUIFont.h"
+#include "IVideoDriver.h"
+//#include "rect.h"
+//#include "irrlicht/os.cpp"
+#include "porting.h"
+//#include "Keycodes.h"
+
+/*
+	todo:
+	optional scrollbars
+	ctrl+left/right to select word
+	double click/ctrl click: word select + drag to select whole words, triple click to select line
+	optional? dragging selected text
+	numerical
+*/
+
+namespace irr
+{
+namespace gui
+{
+
+//! constructor
+intlGUIEditBox::intlGUIEditBox(const wchar_t* text, bool border,
+		IGUIEnvironment* environment, IGUIElement* parent, s32 id,
+		const core::rect<s32>& rectangle)
+	: IGUIEditBox(environment, parent, id, rectangle), MouseMarking(false),
+	Border(border), OverrideColorEnabled(false), MarkBegin(0), MarkEnd(0),
+	OverrideColor(video::SColor(101,255,255,255)), OverrideFont(0), LastBreakFont(0),
+	Operator(0), BlinkStartTime(0), CursorPos(0), HScrollPos(0), VScrollPos(0), Max(0),
+	WordWrap(false), MultiLine(false), AutoScroll(true), PasswordBox(false),
+	PasswordChar(L'*'), HAlign(EGUIA_UPPERLEFT), VAlign(EGUIA_CENTER),
+	CurrentTextRect(0,0,1,1), FrameRect(rectangle)
+{
+	#ifdef _DEBUG
+	setDebugName("intlintlGUIEditBox");
+	#endif
+
+	Text = text;
+
+	if (Environment)
+		Operator = Environment->getOSOperator();
+
+	if (Operator)
+		Operator->grab();
+
+	// this element can be tabbed to
+	setTabStop(true);
+	setTabOrder(-1);
+
+	IGUISkin *skin = 0;
+	if (Environment)
+		skin = Environment->getSkin();
+	if (Border && skin)
+	{
+		FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+		FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+		FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+		FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+	}
+
+	breakText();
+
+	calculateScrollPos();
+}
+
+
+//! destructor
+intlGUIEditBox::~intlGUIEditBox()
+{
+	if (OverrideFont)
+		OverrideFont->drop();
+
+	if (Operator)
+		Operator->drop();
+}
+
+
+//! Sets another skin independent font.
+void intlGUIEditBox::setOverrideFont(IGUIFont* font)
+{
+	if (OverrideFont == font)
+		return;
+
+	if (OverrideFont)
+		OverrideFont->drop();
+
+	OverrideFont = font;
+
+	if (OverrideFont)
+		OverrideFont->grab();
+
+	breakText();
+}
+
+IGUIFont * intlGUIEditBox::getOverrideFont() const
+{
+	return OverrideFont;
+}
+
+//! Get the font which is used right now for drawing
+IGUIFont* intlGUIEditBox::getActiveFont() const
+{
+	if ( OverrideFont )
+		return OverrideFont;
+	IGUISkin* skin = Environment->getSkin();
+	if (skin)
+		return skin->getFont();
+	return 0;
+}
+
+//! Sets another color for the text.
+void intlGUIEditBox::setOverrideColor(video::SColor color)
+{
+	OverrideColor = color;
+	OverrideColorEnabled = true;
+}
+
+video::SColor intlGUIEditBox::getOverrideColor() const
+{
+	return OverrideColor;
+}
+
+//! Turns the border on or off
+void intlGUIEditBox::setDrawBorder(bool border)
+{
+	Border = border;
+}
+
+//! Sets whether to draw the background
+void intlGUIEditBox::setDrawBackground(bool draw)
+{
+}
+
+//! Sets if the text should use the overide color or the color in the gui skin.
+void intlGUIEditBox::enableOverrideColor(bool enable)
+{
+	OverrideColorEnabled = enable;
+}
+
+bool intlGUIEditBox::isOverrideColorEnabled() const
+{
+	_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
+	return OverrideColorEnabled;
+}
+
+//! Enables or disables word wrap
+void intlGUIEditBox::setWordWrap(bool enable)
+{
+	WordWrap = enable;
+	breakText();
+}
+
+
+void intlGUIEditBox::updateAbsolutePosition()
+{
+    core::rect<s32> oldAbsoluteRect(AbsoluteRect);
+	IGUIElement::updateAbsolutePosition();
+	if ( oldAbsoluteRect != AbsoluteRect )
+	{
+        breakText();
+	}
+}
+
+
+//! Checks if word wrap is enabled
+bool intlGUIEditBox::isWordWrapEnabled() const
+{
+	_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
+	return WordWrap;
+}
+
+
+//! Enables or disables newlines.
+void intlGUIEditBox::setMultiLine(bool enable)
+{
+	MultiLine = enable;
+}
+
+
+//! Checks if multi line editing is enabled
+bool intlGUIEditBox::isMultiLineEnabled() const
+{
+	_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
+	return MultiLine;
+}
+
+
+void intlGUIEditBox::setPasswordBox(bool passwordBox, wchar_t passwordChar)
+{
+	PasswordBox = passwordBox;
+	if (PasswordBox)
+	{
+		PasswordChar = passwordChar;
+		setMultiLine(false);
+		setWordWrap(false);
+		BrokenText.clear();
+	}
+}
+
+
+bool intlGUIEditBox::isPasswordBox() const
+{
+	_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
+	return PasswordBox;
+}
+
+
+//! Sets text justification
+void intlGUIEditBox::setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical)
+{
+	HAlign = horizontal;
+	VAlign = vertical;
+}
+
+
+//! called if an event happened.
+bool intlGUIEditBox::OnEvent(const SEvent& event)
+{
+	if (IsEnabled)
+	{
+
+		switch(event.EventType)
+		{
+		case EET_GUI_EVENT:
+			if (event.GUIEvent.EventType == EGET_ELEMENT_FOCUS_LOST)
+			{
+				if (event.GUIEvent.Caller == this)
+				{
+					MouseMarking = false;
+					setTextMarkers(0,0);
+				}
+			}
+			break;
+		case EET_KEY_INPUT_EVENT:
+        {
+#if defined(linux)
+            // ################################################################
+			// ValkaTR:
+            // This part is the difference from the original intlGUIEditBox
+            // It converts UTF-8 character into a UCS-2 (wchar_t)
+            wchar_t wc = L'_';
+            mbtowc( &wc, (char *) &event.KeyInput.Char, sizeof(event.KeyInput.Char) );
+
+            //printf( "char: %lc (%u)  \r\n", wc, wc );
+
+            SEvent irrevent(event);
+            irrevent.KeyInput.Char = wc;
+            // ################################################################
+
+			if (processKey(irrevent))
+				return true;
+#else
+			if (processKey(event))
+				return true;
+#endif // defined(linux)
+
+			break;
+        }
+		case EET_MOUSE_INPUT_EVENT:
+			if (processMouse(event))
+				return true;
+			break;
+		default:
+			break;
+		}
+	}
+
+	return IGUIElement::OnEvent(event);
+}
+
+
+bool intlGUIEditBox::processKey(const SEvent& event)
+{
+	if (!event.KeyInput.PressedDown)
+		return false;
+
+	bool textChanged = false;
+	s32 newMarkBegin = MarkBegin;
+	s32 newMarkEnd = MarkEnd;
+
+	// control shortcut handling
+
+	if (event.KeyInput.Control)
+	{
+		// german backlash '\' entered with control + '?'
+		if ( event.KeyInput.Char == '\\' )
+		{
+			inputChar(event.KeyInput.Char);
+			return true;
+		}
+
+		switch(event.KeyInput.Key)
+		{
+		case KEY_KEY_A:
+			// select all
+			newMarkBegin = 0;
+			newMarkEnd = Text.size();
+			break;
+		case KEY_KEY_C:
+			// copy to clipboard
+			if (!PasswordBox && Operator && MarkBegin != MarkEnd)
+			{
+				const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+				const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+
+				core::stringc s;
+				s = Text.subString(realmbgn, realmend - realmbgn).c_str();
+				Operator->copyToClipboard(s.c_str());
+			}
+			break;
+		case KEY_KEY_X:
+			// cut to the clipboard
+			if (!PasswordBox && Operator && MarkBegin != MarkEnd)
+			{
+				const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+				const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+
+				// copy
+				core::stringc sc;
+				sc = Text.subString(realmbgn, realmend - realmbgn).c_str();
+				Operator->copyToClipboard(sc.c_str());
+
+				if (IsEnabled)
+				{
+					// delete
+					core::stringw s;
+					s = Text.subString(0, realmbgn);
+					s.append( Text.subString(realmend, Text.size()-realmend) );
+					Text = s;
+
+					CursorPos = realmbgn;
+					newMarkBegin = 0;
+					newMarkEnd = 0;
+					textChanged = true;
+				}
+			}
+			break;
+		case KEY_KEY_V:
+			if ( !IsEnabled )
+				break;
+
+			// paste from the clipboard
+			if (Operator)
+			{
+				const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+				const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+
+				// add new character
+				const c8* p = Operator->getTextFromClipboard();
+				if (p)
+				{
+					if (MarkBegin == MarkEnd)
+					{
+						// insert text
+						core::stringw s = Text.subString(0, CursorPos);
+						s.append(p);
+						s.append( Text.subString(CursorPos, Text.size()-CursorPos) );
+
+						if (!Max || s.size()<=Max) // thx to Fish FH for fix
+						{
+							Text = s;
+							s = p;
+							CursorPos += s.size();
+						}
+					}
+					else
+					{
+						// replace text
+
+						core::stringw s = Text.subString(0, realmbgn);
+						s.append(p);
+						s.append( Text.subString(realmend, Text.size()-realmend) );
+
+						if (!Max || s.size()<=Max)  // thx to Fish FH for fix
+						{
+							Text = s;
+							s = p;
+							CursorPos = realmbgn + s.size();
+						}
+					}
+				}
+
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+				textChanged = true;
+			}
+			break;
+		case KEY_HOME:
+			// move/highlight to start of text
+			if (event.KeyInput.Shift)
+			{
+				newMarkEnd = CursorPos;
+				newMarkBegin = 0;
+				CursorPos = 0;
+			}
+			else
+			{
+				CursorPos = 0;
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+			}
+			break;
+		case KEY_END:
+			// move/highlight to end of text
+			if (event.KeyInput.Shift)
+			{
+				newMarkBegin = CursorPos;
+				newMarkEnd = Text.size();
+				CursorPos = 0;
+			}
+			else
+			{
+				CursorPos = Text.size();
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+			}
+			break;
+		default:
+			return false;
+		}
+	}
+	// default keyboard handling
+	else
+	switch(event.KeyInput.Key)
+	{
+	case KEY_END:
+		{
+			s32 p = Text.size();
+			if (WordWrap || MultiLine)
+			{
+				p = getLineFromPos(CursorPos);
+				p = BrokenTextPositions[p] + (s32)BrokenText[p].size();
+				if (p > 0 && (Text[p-1] == L'\r' || Text[p-1] == L'\n' ))
+					p-=1;
+			}
+
+			if (event.KeyInput.Shift)
+			{
+				if (MarkBegin == MarkEnd)
+					newMarkBegin = CursorPos;
+
+				newMarkEnd = p;
+			}
+			else
+			{
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+			}
+			CursorPos = p;
+			BlinkStartTime = porting::getTimeMs();
+		}
+		break;
+	case KEY_HOME:
+		{
+
+			s32 p = 0;
+			if (WordWrap || MultiLine)
+			{
+				p = getLineFromPos(CursorPos);
+				p = BrokenTextPositions[p];
+			}
+
+			if (event.KeyInput.Shift)
+			{
+				if (MarkBegin == MarkEnd)
+					newMarkBegin = CursorPos;
+				newMarkEnd = p;
+			}
+			else
+			{
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+			}
+			CursorPos = p;
+			BlinkStartTime = porting::getTimeMs();
+		}
+		break;
+	case KEY_RETURN:
+		if (MultiLine)
+		{
+			inputChar(L'\n');
+			return true;
+		}
+		else
+		{
+		    sendGuiEvent( EGET_EDITBOX_ENTER );
+		}
+		break;
+	case KEY_LEFT:
+
+		if (event.KeyInput.Shift)
+		{
+			if (CursorPos > 0)
+			{
+				if (MarkBegin == MarkEnd)
+					newMarkBegin = CursorPos;
+
+				newMarkEnd = CursorPos-1;
+			}
+		}
+		else
+		{
+			newMarkBegin = 0;
+			newMarkEnd = 0;
+		}
+
+		if (CursorPos > 0) CursorPos--;
+		BlinkStartTime = porting::getTimeMs();
+		break;
+
+	case KEY_RIGHT:
+		if (event.KeyInput.Shift)
+		{
+			if (Text.size() > (u32)CursorPos)
+			{
+				if (MarkBegin == MarkEnd)
+					newMarkBegin = CursorPos;
+
+				newMarkEnd = CursorPos+1;
+			}
+		}
+		else
+		{
+			newMarkBegin = 0;
+			newMarkEnd = 0;
+		}
+
+		if (Text.size() > (u32)CursorPos) CursorPos++;
+		BlinkStartTime = porting::getTimeMs();
+		break;
+	case KEY_UP:
+		if (MultiLine || (WordWrap && BrokenText.size() > 1) )
+		{
+			s32 lineNo = getLineFromPos(CursorPos);
+			s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin > MarkEnd ? MarkBegin : MarkEnd);
+			if (lineNo > 0)
+			{
+				s32 cp = CursorPos - BrokenTextPositions[lineNo];
+				if ((s32)BrokenText[lineNo-1].size() < cp)
+					CursorPos = BrokenTextPositions[lineNo-1] + (s32)BrokenText[lineNo-1].size()-1;
+				else
+					CursorPos = BrokenTextPositions[lineNo-1] + cp;
+			}
+
+			if (event.KeyInput.Shift)
+			{
+				newMarkBegin = mb;
+				newMarkEnd = CursorPos;
+			}
+			else
+			{
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+			}
+
+		}
+		else
+		{
+			return false;
+		}
+		break;
+	case KEY_DOWN:
+		if (MultiLine || (WordWrap && BrokenText.size() > 1) )
+		{
+			s32 lineNo = getLineFromPos(CursorPos);
+			s32 mb = (MarkBegin == MarkEnd) ? CursorPos : (MarkBegin < MarkEnd ? MarkBegin : MarkEnd);
+			if (lineNo < (s32)BrokenText.size()-1)
+			{
+				s32 cp = CursorPos - BrokenTextPositions[lineNo];
+				if ((s32)BrokenText[lineNo+1].size() < cp)
+					CursorPos = BrokenTextPositions[lineNo+1] + BrokenText[lineNo+1].size()-1;
+				else
+					CursorPos = BrokenTextPositions[lineNo+1] + cp;
+			}
+
+			if (event.KeyInput.Shift)
+			{
+				newMarkBegin = mb;
+				newMarkEnd = CursorPos;
+			}
+			else
+			{
+				newMarkBegin = 0;
+				newMarkEnd = 0;
+			}
+
+		}
+		else
+		{
+			return false;
+		}
+		break;
+
+	case KEY_BACK:
+		if ( !this->IsEnabled )
+			break;
+
+		if (Text.size())
+		{
+			core::stringw s;
+
+			if (MarkBegin != MarkEnd)
+			{
+				// delete marked text
+				const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+				const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+
+				s = Text.subString(0, realmbgn);
+				s.append( Text.subString(realmend, Text.size()-realmend) );
+				Text = s;
+
+				CursorPos = realmbgn;
+			}
+			else
+			{
+				// delete text behind cursor
+				if (CursorPos>0)
+					s = Text.subString(0, CursorPos-1);
+				else
+					s = L"";
+				s.append( Text.subString(CursorPos, Text.size()-CursorPos) );
+				Text = s;
+				--CursorPos;
+			}
+
+			if (CursorPos < 0)
+				CursorPos = 0;
+			BlinkStartTime = porting::getTimeMs();
+			newMarkBegin = 0;
+			newMarkEnd = 0;
+			textChanged = true;
+		}
+		break;
+	case KEY_DELETE:
+		if ( !this->IsEnabled )
+			break;
+
+		if (Text.size() != 0)
+		{
+			core::stringw s;
+
+			if (MarkBegin != MarkEnd)
+			{
+				// delete marked text
+				const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+				const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+
+				s = Text.subString(0, realmbgn);
+				s.append( Text.subString(realmend, Text.size()-realmend) );
+				Text = s;
+
+				CursorPos = realmbgn;
+			}
+			else
+			{
+				// delete text before cursor
+				s = Text.subString(0, CursorPos);
+				s.append( Text.subString(CursorPos+1, Text.size()-CursorPos-1) );
+				Text = s;
+			}
+
+			if (CursorPos > (s32)Text.size())
+				CursorPos = (s32)Text.size();
+
+			BlinkStartTime = porting::getTimeMs();
+			newMarkBegin = 0;
+			newMarkEnd = 0;
+			textChanged = true;
+		}
+		break;
+
+	case KEY_ESCAPE:
+	case KEY_TAB:
+	case KEY_SHIFT:
+	case KEY_F1:
+	case KEY_F2:
+	case KEY_F3:
+	case KEY_F4:
+	case KEY_F5:
+	case KEY_F6:
+	case KEY_F7:
+	case KEY_F8:
+	case KEY_F9:
+	case KEY_F10:
+	case KEY_F11:
+	case KEY_F12:
+	case KEY_F13:
+	case KEY_F14:
+	case KEY_F15:
+	case KEY_F16:
+	case KEY_F17:
+	case KEY_F18:
+	case KEY_F19:
+	case KEY_F20:
+	case KEY_F21:
+	case KEY_F22:
+	case KEY_F23:
+	case KEY_F24:
+		// ignore these keys
+		return false;
+
+	default:
+		inputChar(event.KeyInput.Char);
+		return true;
+	}
+
+    // Set new text markers
+    setTextMarkers( newMarkBegin, newMarkEnd );
+
+	// break the text if it has changed
+	if (textChanged)
+	{
+		breakText();
+		sendGuiEvent(EGET_EDITBOX_CHANGED);
+	}
+
+	calculateScrollPos();
+
+	return true;
+}
+
+
+//! draws the element and its children
+void intlGUIEditBox::draw()
+{
+	if (!IsVisible)
+		return;
+
+	const bool focus = Environment->hasFocus(this);
+
+	IGUISkin* skin = Environment->getSkin();
+	if (!skin)
+		return;
+
+	FrameRect = AbsoluteRect;
+
+	// draw the border
+
+	if (Border)
+	{
+		skin->draw3DSunkenPane(this, skin->getColor(EGDC_WINDOW),
+			false, true, FrameRect, &AbsoluteClippingRect);
+
+		FrameRect.UpperLeftCorner.X += skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+		FrameRect.UpperLeftCorner.Y += skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+		FrameRect.LowerRightCorner.X -= skin->getSize(EGDS_TEXT_DISTANCE_X)+1;
+		FrameRect.LowerRightCorner.Y -= skin->getSize(EGDS_TEXT_DISTANCE_Y)+1;
+	}
+	core::rect<s32> localClipRect = FrameRect;
+	localClipRect.clipAgainst(AbsoluteClippingRect);
+
+	// draw the text
+
+	IGUIFont* font = OverrideFont;
+	if (!OverrideFont)
+		font = skin->getFont();
+
+	s32 cursorLine = 0;
+	s32 charcursorpos = 0;
+
+	if (font)
+	{
+		if (LastBreakFont != font)
+		{
+			breakText();
+		}
+
+		// calculate cursor pos
+
+		core::stringw *txtLine = &Text;
+		s32 startPos = 0;
+
+		core::stringw s, s2;
+
+		// get mark position
+		const bool ml = (!PasswordBox && (WordWrap || MultiLine));
+		const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+		const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+		const s32 hlineStart = ml ? getLineFromPos(realmbgn) : 0;
+		const s32 hlineCount = ml ? getLineFromPos(realmend) - hlineStart + 1 : 1;
+		const s32 lineCount = ml ? BrokenText.size() : 1;
+
+		// Save the override color information.
+		// Then, alter it if the edit box is disabled.
+		const bool prevOver = OverrideColorEnabled;
+		const video::SColor prevColor = OverrideColor;
+
+		if (Text.size())
+		{
+			if (!IsEnabled && !OverrideColorEnabled)
+			{
+				OverrideColorEnabled = true;
+				OverrideColor = skin->getColor(EGDC_GRAY_TEXT);
+			}
+
+			for (s32 i=0; i < lineCount; ++i)
+			{
+				setTextRect(i);
+
+				// clipping test - don't draw anything outside the visible area
+				core::rect<s32> c = localClipRect;
+				c.clipAgainst(CurrentTextRect);
+				if (!c.isValid())
+					continue;
+
+				// get current line
+				if (PasswordBox)
+				{
+					if (BrokenText.size() != 1)
+					{
+						BrokenText.clear();
+						BrokenText.push_back(core::stringw());
+					}
+					if (BrokenText[0].size() != Text.size())
+					{
+						BrokenText[0] = Text;
+						for (u32 q = 0; q < Text.size(); ++q)
+						{
+							BrokenText[0] [q] = PasswordChar;
+						}
+					}
+					txtLine = &BrokenText[0];
+					startPos = 0;
+				}
+				else
+				{
+					txtLine = ml ? &BrokenText[i] : &Text;
+					startPos = ml ? BrokenTextPositions[i] : 0;
+				}
+
+
+				// draw normal text
+				font->draw(txtLine->c_str(), CurrentTextRect,
+					OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT),
+					false, true, &localClipRect);
+
+				// draw mark and marked text
+				if (focus && MarkBegin != MarkEnd && i >= hlineStart && i < hlineStart + hlineCount)
+				{
+
+					s32 mbegin = 0, mend = 0;
+					s32 lineStartPos = 0, lineEndPos = txtLine->size();
+
+					if (i == hlineStart)
+					{
+						// highlight start is on this line
+						s = txtLine->subString(0, realmbgn - startPos);
+						mbegin = font->getDimension(s.c_str()).Width;
+
+						// deal with kerning
+						mbegin += font->getKerningWidth(
+							&((*txtLine)[realmbgn - startPos]),
+							realmbgn - startPos > 0 ? &((*txtLine)[realmbgn - startPos - 1]) : 0);
+
+						lineStartPos = realmbgn - startPos;
+					}
+					if (i == hlineStart + hlineCount - 1)
+					{
+						// highlight end is on this line
+						s2 = txtLine->subString(0, realmend - startPos);
+						mend = font->getDimension(s2.c_str()).Width;
+						lineEndPos = (s32)s2.size();
+					}
+					else
+						mend = font->getDimension(txtLine->c_str()).Width;
+
+					CurrentTextRect.UpperLeftCorner.X += mbegin;
+					CurrentTextRect.LowerRightCorner.X = CurrentTextRect.UpperLeftCorner.X + mend - mbegin;
+
+					// draw mark
+					skin->draw2DRectangle(this, skin->getColor(EGDC_HIGH_LIGHT), CurrentTextRect, &localClipRect);
+
+					// draw marked text
+					s = txtLine->subString(lineStartPos, lineEndPos - lineStartPos);
+
+					if (s.size())
+						font->draw(s.c_str(), CurrentTextRect,
+							OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_HIGH_LIGHT_TEXT),
+							false, true, &localClipRect);
+
+				}
+			}
+
+			// Return the override color information to its previous settings.
+			OverrideColorEnabled = prevOver;
+			OverrideColor = prevColor;
+		}
+
+		// draw cursor
+
+		if (WordWrap || MultiLine)
+		{
+			cursorLine = getLineFromPos(CursorPos);
+			txtLine = &BrokenText[cursorLine];
+			startPos = BrokenTextPositions[cursorLine];
+		}
+		s = txtLine->subString(0,CursorPos-startPos);
+		charcursorpos = font->getDimension(s.c_str()).Width +
+			font->getKerningWidth(L"_", CursorPos-startPos > 0 ? &((*txtLine)[CursorPos-startPos-1]) : 0);
+
+		if (focus && (porting::getTimeMs() - BlinkStartTime) % 700 < 350)
+		{
+			setTextRect(cursorLine);
+			CurrentTextRect.UpperLeftCorner.X += charcursorpos;
+
+			font->draw(L"_", CurrentTextRect,
+				OverrideColorEnabled ? OverrideColor : skin->getColor(EGDC_BUTTON_TEXT),
+				false, true, &localClipRect);
+		}
+	}
+
+	// draw children
+	IGUIElement::draw();
+}
+
+
+//! Sets the new caption of this element.
+void intlGUIEditBox::setText(const wchar_t* text)
+{
+	Text = text;
+	if (u32(CursorPos) > Text.size())
+		CursorPos = Text.size();
+	HScrollPos = 0;
+	breakText();
+}
+
+
+//! Enables or disables automatic scrolling with cursor position
+//! \param enable: If set to true, the text will move around with the cursor position
+void intlGUIEditBox::setAutoScroll(bool enable)
+{
+	AutoScroll = enable;
+}
+
+
+//! Checks to see if automatic scrolling is enabled
+//! \return true if automatic scrolling is enabled, false if not
+bool intlGUIEditBox::isAutoScrollEnabled() const
+{
+	_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
+	return AutoScroll;
+}
+
+
+//! Gets the area of the text in the edit box
+//! \return Returns the size in pixels of the text
+core::dimension2du intlGUIEditBox::getTextDimension()
+{
+	core::rect<s32> ret;
+
+	setTextRect(0);
+	ret = CurrentTextRect;
+
+	for (u32 i=1; i < BrokenText.size(); ++i)
+	{
+		setTextRect(i);
+		ret.addInternalPoint(CurrentTextRect.UpperLeftCorner);
+		ret.addInternalPoint(CurrentTextRect.LowerRightCorner);
+	}
+
+	return core::dimension2du(ret.getSize());
+}
+
+
+//! Sets the maximum amount of characters which may be entered in the box.
+//! \param max: Maximum amount of characters. If 0, the character amount is
+//! infinity.
+void intlGUIEditBox::setMax(u32 max)
+{
+	Max = max;
+
+	if (Text.size() > Max && Max != 0)
+		Text = Text.subString(0, Max);
+}
+
+
+//! Returns maximum amount of characters, previously set by setMax();
+u32 intlGUIEditBox::getMax() const
+{
+	return Max;
+}
+
+
+bool intlGUIEditBox::processMouse(const SEvent& event)
+{
+	switch(event.MouseInput.Event)
+	{
+	case irr::EMIE_LMOUSE_LEFT_UP:
+		if (Environment->hasFocus(this))
+		{
+			CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
+			if (MouseMarking)
+			{
+			    setTextMarkers( MarkBegin, CursorPos );
+			}
+			MouseMarking = false;
+			calculateScrollPos();
+			return true;
+		}
+		break;
+	case irr::EMIE_MOUSE_MOVED:
+		{
+			if (MouseMarking)
+			{
+				CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
+				setTextMarkers( MarkBegin, CursorPos );
+				calculateScrollPos();
+				return true;
+			}
+		}
+		break;
+	case EMIE_LMOUSE_PRESSED_DOWN:
+		if (!Environment->hasFocus(this))
+		{
+			BlinkStartTime = porting::getTimeMs();
+			MouseMarking = true;
+			CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
+			setTextMarkers(CursorPos, CursorPos );
+			calculateScrollPos();
+			return true;
+		}
+		else
+		{
+			if (!AbsoluteClippingRect.isPointInside(
+				core::position2d<s32>(event.MouseInput.X, event.MouseInput.Y)))
+			{
+				return false;
+			}
+			else
+			{
+				// move cursor
+				CursorPos = getCursorPos(event.MouseInput.X, event.MouseInput.Y);
+
+                s32 newMarkBegin = MarkBegin;
+				if (!MouseMarking)
+					newMarkBegin = CursorPos;
+
+				MouseMarking = true;
+				setTextMarkers( newMarkBegin, CursorPos);
+				calculateScrollPos();
+				return true;
+			}
+		}
+	default:
+		break;
+	}
+
+	return false;
+}
+
+
+s32 intlGUIEditBox::getCursorPos(s32 x, s32 y)
+{
+	IGUIFont* font = OverrideFont;
+	IGUISkin* skin = Environment->getSkin();
+	if (!OverrideFont)
+		font = skin->getFont();
+
+	const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1;
+
+	core::stringw *txtLine=0;
+	s32 startPos=0;
+	x+=3;
+
+	for (u32 i=0; i < lineCount; ++i)
+	{
+		setTextRect(i);
+		if (i == 0 && y < CurrentTextRect.UpperLeftCorner.Y)
+			y = CurrentTextRect.UpperLeftCorner.Y;
+		if (i == lineCount - 1 && y > CurrentTextRect.LowerRightCorner.Y )
+			y = CurrentTextRect.LowerRightCorner.Y;
+
+		// is it inside this region?
+		if (y >= CurrentTextRect.UpperLeftCorner.Y && y <= CurrentTextRect.LowerRightCorner.Y)
+		{
+			// we've found the clicked line
+			txtLine = (WordWrap || MultiLine) ? &BrokenText[i] : &Text;
+			startPos = (WordWrap || MultiLine) ? BrokenTextPositions[i] : 0;
+			break;
+		}
+	}
+
+	if (x < CurrentTextRect.UpperLeftCorner.X)
+		x = CurrentTextRect.UpperLeftCorner.X;
+
+	s32 idx = font->getCharacterFromPos(Text.c_str(), x - CurrentTextRect.UpperLeftCorner.X);
+
+	// click was on or left of the line
+	if (idx != -1)
+		return idx + startPos;
+
+	// click was off the right edge of the line, go to end.
+	return txtLine->size() + startPos;
+}
+
+
+//! Breaks the single text line.
+void intlGUIEditBox::breakText()
+{
+	IGUISkin* skin = Environment->getSkin();
+
+	if ((!WordWrap && !MultiLine) || !skin)
+		return;
+
+	BrokenText.clear(); // need to reallocate :/
+	BrokenTextPositions.set_used(0);
+
+	IGUIFont* font = OverrideFont;
+	if (!OverrideFont)
+		font = skin->getFont();
+
+	if (!font)
+		return;
+
+	LastBreakFont = font;
+
+	core::stringw line;
+	core::stringw word;
+	core::stringw whitespace;
+	s32 lastLineStart = 0;
+	s32 size = Text.size();
+	s32 length = 0;
+	s32 elWidth = RelativeRect.getWidth() - 6;
+	wchar_t c;
+
+	for (s32 i=0; i<size; ++i)
+	{
+		c = Text[i];
+		bool lineBreak = false;
+
+		if (c == L'\r') // Mac or Windows breaks
+		{
+			lineBreak = true;
+			c = ' ';
+			if (Text[i+1] == L'\n') // Windows breaks
+			{
+				Text.erase(i+1);
+				--size;
+			}
+		}
+		else if (c == L'\n') // Unix breaks
+		{
+			lineBreak = true;
+			c = ' ';
+		}
+
+		// don't break if we're not a multi-line edit box
+		if (!MultiLine)
+			lineBreak = false;
+
+		if (c == L' ' || c == 0 || i == (size-1))
+		{
+			if (word.size())
+			{
+				// here comes the next whitespace, look if
+				// we can break the last word to the next line.
+				s32 whitelgth = font->getDimension(whitespace.c_str()).Width;
+				s32 worldlgth = font->getDimension(word.c_str()).Width;
+
+				if (WordWrap && length + worldlgth + whitelgth > elWidth)
+				{
+					// break to next line
+					length = worldlgth;
+					BrokenText.push_back(line);
+					BrokenTextPositions.push_back(lastLineStart);
+					lastLineStart = i - (s32)word.size();
+					line = word;
+				}
+				else
+				{
+					// add word to line
+					line += whitespace;
+					line += word;
+					length += whitelgth + worldlgth;
+				}
+
+				word = L"";
+				whitespace = L"";
+			}
+
+			whitespace += c;
+
+			// compute line break
+			if (lineBreak)
+			{
+				line += whitespace;
+				line += word;
+				BrokenText.push_back(line);
+				BrokenTextPositions.push_back(lastLineStart);
+				lastLineStart = i+1;
+				line = L"";
+				word = L"";
+				whitespace = L"";
+				length = 0;
+			}
+		}
+		else
+		{
+			// yippee this is a word..
+			word += c;
+		}
+	}
+
+	line += whitespace;
+	line += word;
+	BrokenText.push_back(line);
+	BrokenTextPositions.push_back(lastLineStart);
+}
+
+
+void intlGUIEditBox::setTextRect(s32 line)
+{
+	core::dimension2du d;
+
+	IGUISkin* skin = Environment->getSkin();
+	if (!skin)
+		return;
+
+	IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont();
+
+	if (!font)
+		return;
+
+	// get text dimension
+	const u32 lineCount = (WordWrap || MultiLine) ? BrokenText.size() : 1;
+	if (WordWrap || MultiLine)
+	{
+		d = font->getDimension(BrokenText[line].c_str());
+	}
+	else
+	{
+		d = font->getDimension(Text.c_str());
+		d.Height = AbsoluteRect.getHeight();
+	}
+	d.Height += font->getKerningHeight();
+
+	// justification
+	switch (HAlign)
+	{
+	case EGUIA_CENTER:
+		// align to h centre
+		CurrentTextRect.UpperLeftCorner.X = (FrameRect.getWidth()/2) - (d.Width/2);
+		CurrentTextRect.LowerRightCorner.X = (FrameRect.getWidth()/2) + (d.Width/2);
+		break;
+	case EGUIA_LOWERRIGHT:
+		// align to right edge
+		CurrentTextRect.UpperLeftCorner.X = FrameRect.getWidth() - d.Width;
+		CurrentTextRect.LowerRightCorner.X = FrameRect.getWidth();
+		break;
+	default:
+		// align to left edge
+		CurrentTextRect.UpperLeftCorner.X = 0;
+		CurrentTextRect.LowerRightCorner.X = d.Width;
+
+	}
+
+	switch (VAlign)
+	{
+	case EGUIA_CENTER:
+		// align to v centre
+		CurrentTextRect.UpperLeftCorner.Y =
+			(FrameRect.getHeight()/2) - (lineCount*d.Height)/2 + d.Height*line;
+		break;
+	case EGUIA_LOWERRIGHT:
+		// align to bottom edge
+		CurrentTextRect.UpperLeftCorner.Y =
+			FrameRect.getHeight() - lineCount*d.Height + d.Height*line;
+		break;
+	default:
+		// align to top edge
+		CurrentTextRect.UpperLeftCorner.Y = d.Height*line;
+		break;
+	}
+
+	CurrentTextRect.UpperLeftCorner.X  -= HScrollPos;
+	CurrentTextRect.LowerRightCorner.X -= HScrollPos;
+	CurrentTextRect.UpperLeftCorner.Y  -= VScrollPos;
+	CurrentTextRect.LowerRightCorner.Y = CurrentTextRect.UpperLeftCorner.Y + d.Height;
+
+	CurrentTextRect += FrameRect.UpperLeftCorner;
+
+}
+
+
+s32 intlGUIEditBox::getLineFromPos(s32 pos)
+{
+	if (!WordWrap && !MultiLine)
+		return 0;
+
+	s32 i=0;
+	while (i < (s32)BrokenTextPositions.size())
+	{
+		if (BrokenTextPositions[i] > pos)
+			return i-1;
+		++i;
+	}
+	return (s32)BrokenTextPositions.size() - 1;
+}
+
+
+void intlGUIEditBox::inputChar(wchar_t c)
+{
+	if (!IsEnabled)
+		return;
+
+	if (c != 0)
+	{
+		if (Text.size() < Max || Max == 0)
+		{
+			core::stringw s;
+
+			if (MarkBegin != MarkEnd)
+			{
+				// replace marked text
+				const s32 realmbgn = MarkBegin < MarkEnd ? MarkBegin : MarkEnd;
+				const s32 realmend = MarkBegin < MarkEnd ? MarkEnd : MarkBegin;
+
+				s = Text.subString(0, realmbgn);
+				s.append(c);
+				s.append( Text.subString(realmend, Text.size()-realmend) );
+				Text = s;
+				CursorPos = realmbgn+1;
+			}
+			else
+			{
+				// add new character
+				s = Text.subString(0, CursorPos);
+				s.append(c);
+				s.append( Text.subString(CursorPos, Text.size()-CursorPos) );
+				Text = s;
+				++CursorPos;
+			}
+
+			BlinkStartTime = porting::getTimeMs();
+			setTextMarkers(0, 0);
+		}
+	}
+	breakText();
+	sendGuiEvent(EGET_EDITBOX_CHANGED);
+	calculateScrollPos();
+}
+
+
+void intlGUIEditBox::calculateScrollPos()
+{
+	if (!AutoScroll)
+		return;
+
+	// calculate horizontal scroll position
+	s32 cursLine = getLineFromPos(CursorPos);
+	setTextRect(cursLine);
+
+	// don't do horizontal scrolling when wordwrap is enabled.
+	if (!WordWrap)
+	{
+		// get cursor position
+		IGUISkin* skin = Environment->getSkin();
+		if (!skin)
+			return;
+		IGUIFont* font = OverrideFont ? OverrideFont : skin->getFont();
+		if (!font)
+			return;
+
+		core::stringw *txtLine = MultiLine ? &BrokenText[cursLine] : &Text;
+		s32 cPos = MultiLine ? CursorPos - BrokenTextPositions[cursLine] : CursorPos;
+
+		s32 cStart = CurrentTextRect.UpperLeftCorner.X + HScrollPos +
+			font->getDimension(txtLine->subString(0, cPos).c_str()).Width;
+
+		s32 cEnd = cStart + font->getDimension(L"_ ").Width;
+
+		if (FrameRect.LowerRightCorner.X < cEnd)
+			HScrollPos = cEnd - FrameRect.LowerRightCorner.X;
+		else if (FrameRect.UpperLeftCorner.X > cStart)
+			HScrollPos = cStart - FrameRect.UpperLeftCorner.X;
+		else
+			HScrollPos = 0;
+
+		// todo: adjust scrollbar
+	}
+
+	// vertical scroll position
+	if (FrameRect.LowerRightCorner.Y < CurrentTextRect.LowerRightCorner.Y + VScrollPos)
+		VScrollPos = CurrentTextRect.LowerRightCorner.Y - FrameRect.LowerRightCorner.Y + VScrollPos;
+
+	else if (FrameRect.UpperLeftCorner.Y > CurrentTextRect.UpperLeftCorner.Y + VScrollPos)
+		VScrollPos = CurrentTextRect.UpperLeftCorner.Y - FrameRect.UpperLeftCorner.Y + VScrollPos;
+	else
+		VScrollPos = 0;
+
+	// todo: adjust scrollbar
+}
+
+//! set text markers
+void intlGUIEditBox::setTextMarkers(s32 begin, s32 end)
+{
+    if ( begin != MarkBegin || end != MarkEnd )
+    {
+        MarkBegin = begin;
+        MarkEnd = end;
+        sendGuiEvent(EGET_EDITBOX_MARKING_CHANGED);
+    }
+}
+
+//! send some gui event to parent
+void intlGUIEditBox::sendGuiEvent(EGUI_EVENT_TYPE type)
+{
+	if ( Parent )
+	{
+        SEvent e;
+        e.EventType = EET_GUI_EVENT;
+        e.GUIEvent.Caller = this;
+        e.GUIEvent.Element = 0;
+        e.GUIEvent.EventType = type;
+
+        Parent->OnEvent(e);
+	}
+}
+
+//! Writes attributes of the element.
+void intlGUIEditBox::serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const
+{
+	// IGUIEditBox::serializeAttributes(out,options);
+
+	out->addBool  ("OverrideColorEnabled",OverrideColorEnabled );
+	out->addColor ("OverrideColor",       OverrideColor);
+	// out->addFont("OverrideFont",OverrideFont);
+	out->addInt   ("MaxChars",            Max);
+	out->addBool  ("WordWrap",            WordWrap);
+	out->addBool  ("MultiLine",           MultiLine);
+	out->addBool  ("AutoScroll",          AutoScroll);
+	out->addBool  ("PasswordBox",         PasswordBox);
+	core::stringw ch = L" ";
+	ch[0] = PasswordChar;
+	out->addString("PasswordChar",        ch.c_str());
+	out->addEnum  ("HTextAlign",          HAlign, GUIAlignmentNames);
+	out->addEnum  ("VTextAlign",          VAlign, GUIAlignmentNames);
+
+	IGUIEditBox::serializeAttributes(out,options);
+}
+
+
+//! Reads attributes of the element
+void intlGUIEditBox::deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0)
+{
+	IGUIEditBox::deserializeAttributes(in,options);
+
+	setOverrideColor(in->getAttributeAsColor("OverrideColor"));
+	enableOverrideColor(in->getAttributeAsBool("OverrideColorEnabled"));
+	setMax(in->getAttributeAsInt("MaxChars"));
+	setWordWrap(in->getAttributeAsBool("WordWrap"));
+	setMultiLine(in->getAttributeAsBool("MultiLine"));
+	setAutoScroll(in->getAttributeAsBool("AutoScroll"));
+	core::stringw ch = in->getAttributeAsStringW("PasswordChar");
+
+	if (!ch.size())
+		setPasswordBox(in->getAttributeAsBool("PasswordBox"));
+	else
+		setPasswordBox(in->getAttributeAsBool("PasswordBox"), ch[0]);
+
+	setTextAlignment( (EGUI_ALIGNMENT) in->getAttributeAsEnumeration("HTextAlign", GUIAlignmentNames),
+			(EGUI_ALIGNMENT) in->getAttributeAsEnumeration("VTextAlign", GUIAlignmentNames));
+
+	// setOverrideFont(in->getAttributeAsFont("OverrideFont"));
+}
+
+
+} // end namespace gui
+} // end namespace irr
+
+#endif // _IRR_COMPILE_WITH_GUI_
diff --git a/src/intlGUIEditBox.h b/src/intlGUIEditBox.h
new file mode 100644
index 000000000..f888fb620
--- /dev/null
+++ b/src/intlGUIEditBox.h
@@ -0,0 +1,178 @@
+// Copyright (C) 2002-2010 Nikolaus Gebhardt
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in irrlicht.h
+
+#ifndef __C_INTL_GUI_EDIT_BOX_H_INCLUDED__
+#define __C_INTL_GUI_EDIT_BOX_H_INCLUDED__
+
+#include "IrrCompileConfig.h"
+//#ifdef _IRR_COMPILE_WITH_GUI_
+
+#include "IGUIEditBox.h"
+#include "irrArray.h"
+#include "IOSOperator.h"
+
+namespace irr
+{
+namespace gui
+{
+	class intlGUIEditBox : public IGUIEditBox
+	{
+	public:
+
+		//! constructor
+		intlGUIEditBox(const wchar_t* text, bool border, IGUIEnvironment* environment,
+			IGUIElement* parent, s32 id, const core::rect<s32>& rectangle);
+
+		//! destructor
+		virtual ~intlGUIEditBox();
+
+		//! Sets another skin independent font.
+		virtual void setOverrideFont(IGUIFont* font=0);
+
+		//! Gets the override font (if any)
+		/** \return The override font (may be 0) */
+		virtual IGUIFont* getOverrideFont() const;
+
+		//! Get the font which is used right now for drawing
+		/** Currently this is the override font when one is set and the
+		font of the active skin otherwise */
+		virtual IGUIFont* getActiveFont() const;
+
+		//! Sets another color for the text.
+		virtual void setOverrideColor(video::SColor color);
+
+		//! Gets the override color
+		virtual video::SColor getOverrideColor() const;
+
+		//! Sets if the text should use the overide color or the
+		//! color in the gui skin.
+		virtual void enableOverrideColor(bool enable);
+
+		//! Checks if an override color is enabled
+		/** \return true if the override color is enabled, false otherwise */
+		virtual bool isOverrideColorEnabled(void) const;
+
+		//! Sets whether to draw the background
+		virtual void setDrawBackground(bool draw);
+
+		//! Turns the border on or off
+		virtual void setDrawBorder(bool border);
+
+		//! Enables or disables word wrap for using the edit box as multiline text editor.
+		virtual void setWordWrap(bool enable);
+
+		//! Checks if word wrap is enabled
+		//! \return true if word wrap is enabled, false otherwise
+		virtual bool isWordWrapEnabled() const;
+
+		//! Enables or disables newlines.
+		/** \param enable: If set to true, the EGET_EDITBOX_ENTER event will not be fired,
+		instead a newline character will be inserted. */
+		virtual void setMultiLine(bool enable);
+
+		//! Checks if multi line editing is enabled
+		//! \return true if mult-line is enabled, false otherwise
+		virtual bool isMultiLineEnabled() const;
+
+		//! Enables or disables automatic scrolling with cursor position
+		//! \param enable: If set to true, the text will move around with the cursor position
+		virtual void setAutoScroll(bool enable);
+
+		//! Checks to see if automatic scrolling is enabled
+		//! \return true if automatic scrolling is enabled, false if not
+		virtual bool isAutoScrollEnabled() const;
+
+		//! Gets the size area of the text in the edit box
+		//! \return Returns the size in pixels of the text
+		virtual core::dimension2du getTextDimension();
+
+		//! Sets text justification
+		virtual void setTextAlignment(EGUI_ALIGNMENT horizontal, EGUI_ALIGNMENT vertical);
+
+		//! called if an event happened.
+		virtual bool OnEvent(const SEvent& event);
+
+		//! draws the element and its children
+		virtual void draw();
+
+		//! Sets the new caption of this element.
+		virtual void setText(const wchar_t* text);
+
+		//! Sets the maximum amount of characters which may be entered in the box.
+		//! \param max: Maximum amount of characters. If 0, the character amount is
+		//! infinity.
+		virtual void setMax(u32 max);
+
+		//! Returns maximum amount of characters, previously set by setMax();
+		virtual u32 getMax() const;
+
+		//! Sets whether the edit box is a password box. Setting this to true will
+		/** disable MultiLine, WordWrap and the ability to copy with ctrl+c or ctrl+x
+		\param passwordBox: true to enable password, false to disable
+		\param passwordChar: the character that is displayed instead of letters */
+		virtual void setPasswordBox(bool passwordBox, wchar_t passwordChar = L'*');
+
+		//! Returns true if the edit box is currently a password box.
+		virtual bool isPasswordBox() const;
+
+		//! Updates the absolute position, splits text if required
+		virtual void updateAbsolutePosition();
+
+		//! Writes attributes of the element.
+		virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options) const;
+
+		//! Reads attributes of the element
+		virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options);
+
+	protected:
+		//! Breaks the single text line.
+		void breakText();
+		//! sets the area of the given line
+		void setTextRect(s32 line);
+		//! returns the line number that the cursor is on
+		s32 getLineFromPos(s32 pos);
+		//! adds a letter to the edit box
+		void inputChar(wchar_t c);
+		//! calculates the current scroll position
+		void calculateScrollPos();
+		//! send some gui event to parent
+		void sendGuiEvent(EGUI_EVENT_TYPE type);
+		//! set text markers
+		void setTextMarkers(s32 begin, s32 end);
+
+		bool processKey(const SEvent& event);
+		bool processMouse(const SEvent& event);
+		s32 getCursorPos(s32 x, s32 y);
+
+		bool MouseMarking;
+		bool Border;
+		bool OverrideColorEnabled;
+		s32 MarkBegin;
+		s32 MarkEnd;
+
+		video::SColor OverrideColor;
+		gui::IGUIFont *OverrideFont, *LastBreakFont;
+		IOSOperator* Operator;
+
+		u32 BlinkStartTime;
+		s32 CursorPos;
+		s32 HScrollPos, VScrollPos; // scroll position in characters
+		u32 Max;
+
+		bool WordWrap, MultiLine, AutoScroll, PasswordBox;
+		wchar_t PasswordChar;
+		EGUI_ALIGNMENT HAlign, VAlign;
+
+		core::array< core::stringw > BrokenText;
+		core::array< s32 > BrokenTextPositions;
+
+		core::rect<s32> CurrentTextRect, FrameRect; // temporary values
+	};
+
+
+} // end namespace gui
+} // end namespace irr
+
+//#endif // _IRR_COMPILE_WITH_GUI_
+#endif // __C_GUI_EDIT_BOX_H_INCLUDED__
diff --git a/src/main.cpp b/src/main.cpp
index 6f4095148..968dc8d60 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -68,6 +68,9 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "profiler.h"
 #include "log.h"
 #include "mods.h"
+#if USE_FREETYPE
+#include "xCGUITTFont.h"
+#endif
 #include "util/string.h"
 #include "subgame.h"
 #include "quicktune.h"
@@ -767,11 +770,19 @@ int main(int argc, char *argv[])
 
 	log_register_thread("main");
 
-	// Set locale. This is for forcing '.' as the decimal point.
-	std::locale::global(std::locale("C"));
-	// This enables printing all characters in bitmap font
-	setlocale(LC_CTYPE, "en_US");
+	// This enables internatonal characters input
+	if( setlocale(LC_ALL, "") == NULL )
+	{
+		fprintf( stderr, "%s: warning: could not set default locale\n", argv[0] );
+	}
 
+	// Set locale. This is for forcing '.' as the decimal point.
+	try {
+		std::locale::global(std::locale(std::locale(""), "C", std::locale::numeric));
+		setlocale(LC_NUMERIC, "C");
+	} catch (const std::exception& ex) {
+		errorstream<<"Could not set numeric locale to C"<<std::endl;
+	}
 	/*
 		Parse command line
 	*/
@@ -875,7 +886,7 @@ int main(int argc, char *argv[])
 	// Create user data directory
 	fs::CreateDir(porting::path_user);
 
-	init_gettext((porting::path_share+DIR_DELIM+".."+DIR_DELIM+"locale").c_str());
+	init_gettext((porting::path_share + DIR_DELIM + "locale").c_str());
 	
 	// Initialize debug streams
 #define DEBUGFILE "debug.txt"
@@ -1329,7 +1340,13 @@ int main(int argc, char *argv[])
 
 	guienv = device->getGUIEnvironment();
 	gui::IGUISkin* skin = guienv->getSkin();
+	#if USE_FREETYPE
+	std::string font_path = g_settings->get("font_path");
+	u16 font_size = g_settings->getU16("font_size");
+	gui::IGUIFont *font = gui::CGUITTFont::createTTFont(guienv, font_path.c_str(), font_size);
+	#else
 	gui::IGUIFont* font = guienv->getFont(getTexturePath("fontlucida.png").c_str());
+	#endif
 	if(font)
 		skin->setFont(font);
 	else