Index: src/AST/Node.hpp
===================================================================
--- src/AST/Node.hpp	(revision a93589218b787f36ca9d02a420b5d7b54ed5fc68)
+++ src/AST/Node.hpp	(revision dafe9e17b5724e86e06b513c6582c2dfa027d22a)
@@ -10,6 +10,6 @@
 // Created On       : Wed May 8 10:27:04 2019
 // Last Modified By : Andrew Beach
-// Last Modified On : Thu May 23 16:00:00 2019
-// Update Count     : 4
+// Last Modified On : Mon Jun  3 13:26:00 2019
+// Update Count     : 5
 //
 
@@ -107,5 +107,5 @@
 	ptr_base() : node(nullptr) {}
 	ptr_base( const node_t * n ) : node(n) { if( node ) _inc(node); }
-	~ptr_base() { if( node ) _dec(node); }
+	~ptr_base() { if( node ) { auto tmp = node; node = nullptr; _dec(tmp); } }
 
 	ptr_base( const ptr_base & o ) : node(o.node) {
@@ -127,5 +127,5 @@
 	template<typename o_node_t>
 	ptr_base & operator=( const o_node_t * node ) {
-		assign( node ? strict_dynamic_cast<const node_t *>(node) : nullptr );
+		assign( strict_dynamic_cast<const node_t *, nullptr>(node) );
 		return *this;
 	}
Index: src/AST/Type.hpp
===================================================================
--- src/AST/Type.hpp	(revision a93589218b787f36ca9d02a420b5d7b54ed5fc68)
+++ src/AST/Type.hpp	(revision dafe9e17b5724e86e06b513c6582c2dfa027d22a)
@@ -48,4 +48,5 @@
 
 	Type * set_const( bool v ) { qualifiers.is_const = v; return this; }
+	Type * set_volatile( bool v ) { qualifiers.is_volatile = v; return this; }
 	Type * set_restrict( bool v ) { qualifiers.is_restrict = v; return this; }
 	Type * set_lvalue( bool v ) { qualifiers.is_lvalue = v; return this; }
Index: src/AST/TypeSubstitution.cpp
===================================================================
--- src/AST/TypeSubstitution.cpp	(revision a93589218b787f36ca9d02a420b5d7b54ed5fc68)
+++ src/AST/TypeSubstitution.cpp	(revision dafe9e17b5724e86e06b513c6582c2dfa027d22a)
@@ -9,7 +9,7 @@
 // Author           : Richard C. Bilson
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Thu Mar 16 15:54:35 2017
-// Update Count     : 4
+// Last Modified By : Andrew Beach
+// Last Modified On : Mon Jun  3 13:26:00 2017
+// Update Count     : 5
 //
 
@@ -26,12 +26,5 @@
 }
 
-TypeSubstitution::~TypeSubstitution() {
-	for ( TypeEnvType::iterator i = typeEnv.begin(); i != typeEnv.end(); ++i ) {
-		delete( i->second );
-	}
-	for ( VarEnvType::iterator i = varEnv.begin(); i != varEnv.end(); ++i ) {
-		delete( i->second );
-	}
-}
+TypeSubstitution::~TypeSubstitution() {}
 
 TypeSubstitution &TypeSubstitution::operator=( const TypeSubstitution &other ) {
