Index: src/ResolvExpr/CurrentObject.cpp
===================================================================
--- src/ResolvExpr/CurrentObject.cpp	(revision 90be0cf4038a0d324a55f8ab409c9aa1b4ba02e2)
+++ src/ResolvExpr/CurrentObject.cpp	(revision 720eec9521d143be26ac2cf91286816f5447e044)
@@ -60,5 +60,5 @@
 	/// Retrieve the list of possible (Type,Designation) pairs for the
 	/// current position in the current object.
-	virtual std::deque< InitAlternative > operator* () const = 0;
+	virtual std::deque< InitAlternative > getOptions() const = 0;
 
 	/// True if the iterator is not currently at the end.
@@ -77,6 +77,6 @@
 	virtual const Type * getNext() = 0;
 
-	/// Helper for operator*; aggregates must add designator to each init
-	/// alternative, but adding designators in operator* creates duplicates.
+	/// Helper for getOptions; aggregates must add designator to each init
+	/// alternative, but adding designators in getOptions creates duplicates.
 	virtual std::deque< InitAlternative > first() const = 0;
 };
@@ -103,5 +103,5 @@
 	}
 
-	std::deque< InitAlternative > operator* () const override { return first(); }
+	std::deque< InitAlternative > getOptions() const override { return first(); }
 
 	operator bool() const override { return type; }
@@ -169,5 +169,5 @@
 	}
 
-	std::deque< InitAlternative > operator* () const override { return first(); }
+	std::deque< InitAlternative > getOptions() const override { return first(); }
 
 	operator bool() const override { return index < size; }
@@ -297,5 +297,5 @@
 	}
 
-	std::deque< InitAlternative > operator* () const final {
+	std::deque< InitAlternative > getOptions() const final {
 		if ( memberIter && *memberIter ) {
 			std::deque< InitAlternative > ret = memberIter->first();
@@ -594,5 +594,5 @@
 	PRINT( std::cerr << "____getting current options" << std::endl; )
 	assertf( ! objStack.empty(), "objstack empty in getOptions" );
-	return **objStack.back();
+	return objStack.back()->getOptions();
 }
 
