Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision f0121d7b1fdcae6c3362d9920d387c2a83a180d7)
+++ src/SynTree/Expression.cc	(revision 77971f6131006ff573ba5422c4d83b41b7c5e612)
@@ -581,5 +581,5 @@
 
 long long UniqueExpr::count = 0;
-UniqueExpr::UniqueExpr( Expression *expr, long long idVal ) : expr( new Expression* ), id( idVal ) {
+UniqueExpr::UniqueExpr( Expression *expr, long long idVal ) : expr( new Expression* ), object( new ObjectDecl* ), id( idVal ) {
 	assert( count != -1 );
 	if ( id == -1 ) id = count++;
@@ -589,6 +589,7 @@
 		set_result( expr->get_result()->clone() );
 	}
-}
-UniqueExpr::UniqueExpr( const UniqueExpr &other ) : Expression( other ), expr( other.expr ), id( other.id ) {
+	set_object( nullptr );
+}
+UniqueExpr::UniqueExpr( const UniqueExpr &other ) : Expression( other ), expr( other.expr ), object( other.object ), id( other.id ) {
 }
 UniqueExpr::~UniqueExpr() {
@@ -596,8 +597,15 @@
 		delete *expr;
 	}
+	if ( object.unique() ) {
+		delete *object;
+	}
 }
 void UniqueExpr::print( std::ostream &os, int indent ) const {
 	os << "Unique Expression with id:" << id << std::endl << std::string( indent+2, ' ' );
 	get_expr()->print( os, indent+2 );
+	if ( get_object() ) {
+		os << " with decl: ";
+		get_object()->printShort( os, indent+2 );
+	}
 }
 
Index: src/SynTree/Expression.h
===================================================================
--- src/SynTree/Expression.h	(revision f0121d7b1fdcae6c3362d9920d387c2a83a180d7)
+++ src/SynTree/Expression.h	(revision 77971f6131006ff573ba5422c4d83b41b7c5e612)
@@ -742,4 +742,7 @@
 	UniqueExpr * set_expr( Expression * newValue ) { *expr = newValue; return this; }
 
+	ObjectDecl * get_object() const { return *object; }
+	UniqueExpr * set_object( ObjectDecl * newValue ) { *object = newValue; return this; }
+
 	int get_id() const { return id; }
 
@@ -750,4 +753,5 @@
 private:
 	std::shared_ptr< Expression * > expr;
+	std::shared_ptr< ObjectDecl * > object;
 	int id;
 	static long long count;
