private Class getClassImpl(String name) throws UtilEvalError {
		Class c = null;

		// Check the cache
		if (classCache != null) {
			c = classCache.get(name);

			if (c != null)
				return c;
		}

		// Unqualified (simple, non-compound) name
		boolean unqualifiedName = !Name.isCompound(name);

		// Unqualified name check imported
		if (unqualifiedName) {
			// Try imported class
			if (c == null)
				c = getImportedClassImpl(name);

			// if found as imported also cache it
			if (c != null) {
				cacheClass(name, c);
				return c;
			}
		}

		// Try absolute
		c = classForName(name);
		if (c != null) {
			// Cache unqualified names to prevent import check again
			if (unqualifiedName)
				cacheClass(name, c);
			return c;
		}

		// Not found
		if (Interpreter.DEBUG)
			Interpreter.debug("getClass(): " + name + " not	found in " + this);
		return null;
	}