 		protected var m_path : String;
 		protected var m_port : Number;
 		protected var m_query : String;
+		protected var m_queryObject : Object;
 		protected var m_fragment : String;
 		
 		

			{
				var query : String = urlString.substring(queryStartIndex + 1);
				var queryParts : Array = query.split('#');
				m_query = queryParts[0];
				m_fragment = queryParts[1];
				m_path = urlString.substring(0, queryStartIndex);
			}

		public function setQuery(val:String) : void
		{
			m_query = val;
			m_queryObject = {};
			var parts:Array = m_query.split('&');
			for each (var part:String in parts)
			{
				if (!part || !part.length)
				{
					continue;
				}
				var keyValueParts:Array = part.split('=');
				m_queryObject[keyValueParts[0]] = keyValueParts[1];
			}
		}
		
		public function queryObject():Object
		{
			return m_queryObject;
		}
		
		public function fragment() : String
