 					_prefix = (uriVal as Namespace).prefix;
 					_uri = (uriVal as Namespace).uri;
 				}
-				else if(uriVal is QName)
+				else if(isQName(uriVal ))
 				{
-					if((uriVal as QName).uri)
-						_uri = (uriVal as QName).uri;
+					_uri = uriVal.uri ? uriVal.uri : _uri;
 				}
 				else {
 					_uri = uriVal.toString();

			else if(uriValue)
			{
				// something is specified as the URI otherwise fall through and leave both the prefix and uri blank
				if(uriValue is QName)
				{
					if((uriValue as QName).uri)
						_uri = (uriValue as QName).uri;
				}
				else {
					_uri = uriValue.toString();

{
	public class Namespace
	{
		COMPILE::JS
		{
			import org.apache.flex.utils.Language;
		}
		COMPILE::JS
    	public function Namespace(prefixOrUri:Object=null,uriValue:Object=null)
		{
