Index: src/SynTree/Declaration.cc
===================================================================
--- src/SynTree/Declaration.cc	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/SynTree/Declaration.cc	(revision b2f50823a59f3609d5fa94e5fa9c7de52cc79754)
@@ -32,5 +32,5 @@
 
 Declaration::Declaration( const Declaration &other )
-	: name( other.name ), storageClasses( other.storageClasses ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
+	: BaseSyntaxNode( other ), name( other.name ), storageClasses( other.storageClasses ), linkage( other.linkage ), uniqueId( other.uniqueId ) {
 }
 
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/SynTree/Expression.cc	(revision b2f50823a59f3609d5fa94e5fa9c7de52cc79754)
@@ -33,5 +33,5 @@
 Expression::Expression( Expression *_aname ) : result( 0 ), env( 0 ), argName( _aname ) {}
 
-Expression::Expression( const Expression &other ) : result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ), extension( other.extension ) {
+Expression::Expression( const Expression &other ) : BaseSyntaxNode( other ), result( maybeClone( other.result ) ), env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ), extension( other.extension ) {
 }
 
Index: src/SynTree/Initializer.cc
===================================================================
--- src/SynTree/Initializer.cc	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/SynTree/Initializer.cc	(revision b2f50823a59f3609d5fa94e5fa9c7de52cc79754)
@@ -20,5 +20,5 @@
 
 Initializer::Initializer( bool maybeConstructed ) : maybeConstructed( maybeConstructed ) {}
-Initializer::Initializer( const Initializer & other ) : maybeConstructed( other.maybeConstructed ) {
+Initializer::Initializer( const Initializer & other ) : BaseSyntaxNode( other ), maybeConstructed( other.maybeConstructed ) {
 }
 
Index: src/SynTree/Initializer.h
===================================================================
--- src/SynTree/Initializer.h	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/SynTree/Initializer.h	(revision b2f50823a59f3609d5fa94e5fa9c7de52cc79754)
@@ -112,4 +112,6 @@
 // ConstructorInit represents an initializer that is either a constructor expression or
 // a C-style initializer.
+// It should not be necessary to create ConstructorInit nodes manually. Instead, set maybeConstructed
+// to true on SingleInit or ListInit constructors if object should be constructed.
 class ConstructorInit : public Initializer {
   public:
Index: src/SynTree/Type.cc
===================================================================
--- src/SynTree/Type.cc	(revision 1fbab5a0107bc631a52826378ed50c1187d6284c)
+++ src/SynTree/Type.cc	(revision b2f50823a59f3609d5fa94e5fa9c7de52cc79754)
@@ -49,5 +49,5 @@
 Type::Type( const Qualifiers &tq, const std::list< Attribute * > & attributes ) : tq( tq ), attributes( attributes ) {}
 
-Type::Type( const Type &other ) : tq( other.tq ) {
+Type::Type( const Type &other ) : BaseSyntaxNode( other ), tq( other.tq ) {
 	cloneAll( other.forall, forall );
 	cloneAll( other.attributes, attributes );
@@ -75,5 +75,5 @@
 		printAll( attributes, os, indent+4 );
 	} // if
-	
+
 	tq.print( os );
 }
