 					_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();

					_prefix = prefixOrUri.toString();

			}
		}

		private var _uri:String = "";

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