function GetLabelArray($val_prop, $label_prop)
    {
		// check the cache
		// $cachekey = md5($this->_sql . " VAL=".$val_prop." LABEL=" . $label_prop);
		$cachekey = $this->_sql . " VAL=".$val_prop." LABEL=" . $label_prop;

		$arr = $this->GetDelayedCache($cachekey);

		// if no cache, go to the db
		if ($arr != null)
		{
			$this->_phreezer->Observe("(DataSet.GetLabelArray: skipping query because cache exists) " . $this->_sql,OBSERVE_QUERY);
		}
		else
		{
			$this->LockCache($cachekey);

			$arr = Array();
			$this->UnableToCache = false;

			while ($object = $this->Next())
			{
				$arr[$object->$val_prop] = $object->$label_prop;
			}

			$this->_phreezer->SetValueCache($cachekey, $arr, $this->_cache_timeout);

			$this->UnlockCache($cachekey);
		}

        return $arr;
    }