Index: src/SynTree/AggregateDecl.cc
===================================================================
--- src/SynTree/AggregateDecl.cc	(revision 03b812d251e4a970bd478186cbc6540e71a0fda7)
+++ src/SynTree/AggregateDecl.cc	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
@@ -5,5 +5,5 @@
 // file "LICENCE" distributed with Cforall.
 //
-// AggregateDecl.cc -- 
+// AggregateDecl.cc --
 //
 // Author           : Richard C. Bilson
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 03b812d251e4a970bd478186cbc6540e71a0fda7)
+++ src/SynTree/Expression.cc	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
@@ -200,9 +200,8 @@
 
 OffsetofExpr::OffsetofExpr( const OffsetofExpr &other ) :
-	Expression( other ), type( maybeClone( other.type ) ), member( maybeClone( other.member ) ) {}
+	Expression( other ), type( maybeClone( other.type ) ), member( other.member ) {}
 
 OffsetofExpr::~OffsetofExpr() {
 	delete type;
-	delete member;
 }
 
@@ -359,4 +358,5 @@
 	assert( member );
 	os << std::string( indent + 2, ' ' );
+	os << (void*)member << " ";
 	member->print( os, indent + 2 );
 	os << std::endl;
Index: src/SynTree/TypeSubstitution.h
===================================================================
--- src/SynTree/TypeSubstitution.h	(revision 03b812d251e4a970bd478186cbc6540e71a0fda7)
+++ src/SynTree/TypeSubstitution.h	(revision 79970ed6c19a6660b1238fe9021a3df4e5884245)
@@ -169,7 +169,6 @@
 	TypeSubstitution sub = TypeSubstitution( formalBegin, formalEnd, actual );
 	for ( std::list< Declaration* >::iterator i = memberBegin; i != memberEnd; ++i ) {
-		Declaration *newdecl = (*i)->clone();
-		sub.apply( newdecl );
-		*out++ = newdecl;
+		sub.apply( *i );
+		*out++ = *i;
 	} // for
 }
