Windows Phone 8.1 TouchKeyboard problem

Hi, I am developing an application for Windows Store / Windows Phone 8.1 (Unity platform Windows Store, SDK Phone 8.1) and I have a problem with touch keyboard. I used the approach described here: http://answers.unity3d.com/questions/746682/how-to-use-and-test-the-virtual-keyboard-in-window.html (with few changes). The keyboard.text property does not work for me, so I use Input.inputString.

It works fine, but the problem is, by default I can write only Capital letters, if I want to write small caps, I have to shift down before every letter. Then the keyboard writes small cap, but immediately changes back to Capitals. Does anyone knows the solution to this problem, or is this just a Unity bug? I am using Unity 4.5.5f1.

Code I use to process keyboard input:

	// to display the keyboard
	public void ShowOnScreenKeyboard()
	{
		m_ActiveTextInput = this;

		TouchScreenKeyboard keyboard = TouchScreenKeyboard.Open(
			m_Text,
			TouchScreenKeyboardType.Default,
			false,
			false,
			false,
			false,
			PlaceholderString);
			
		keyboard.active = true;
		StartCoroutine("ProcessOnscreenKeyboardInput", keyboard);
	}
	
	//coroutine that processes input
	private IEnumerator ProcessOnscreenKeyboardInput(TouchScreenKeyboard keyboard)
	{
		m_TouchscreenKeyboard = keyboard;
		string text           = m_Text;
		float startTime       = Time.time;
		keyboard.active       = true;
		
		//wait for keyboard activation - just for sure, but sometimes keyboard really did not activate on time
		while(keyboard.done && Time.time - startTime < 1f)
		{
			yield return null;
		}
		
		while (keyboard != null && !keyboard.done && m_ActiveTextInput == this && keyboard.active == true)
		{
			if (Input.inputString.Length > 0)
			{
				foreach (char c in Input.inputString)
				{
					if (c == '\b' && text.Length > 0)
					{
						// backspace: remove last char
						text = text.Substring(0, text.Length - 1);
					}
					else
					{
						// add any other char to the string
						text += c;
					}
				}
			}	
			
			SetText(text); // displays written text on screen
			yield return new WaitForEndOfFrame();
		}
	}

Found out, it is a Unity bug currently resolved in Unity 4.6 beta