Index: src/GenPoly/Specialize.cc
===================================================================
--- src/GenPoly/Specialize.cc	(revision b762122a40c826698fb24962773221850d6fb55f)
+++ src/GenPoly/Specialize.cc	(revision 24e7b47876ef3c234e0f76d220afbbf04427ce02)
@@ -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 : Sat Jun 13 15:54:07 2015
-// Update Count     : 6
+// Last Modified By : Rob Schluntz
+// Last Modified On : Tue Sep 22 14:04:13 2015
+// Update Count     : 15
 //
 
@@ -86,4 +86,5 @@
 
 	Expression * Specialize::doSpecialization( Type *formalType, Expression *actual, InferredParams *inferParams ) {
+		assert( ! actual->get_results().empty() );
 		if ( needsSpecialization( formalType, actual->get_results().front(), env ) ) {
 			PointerType *ptrType;
@@ -167,4 +168,5 @@
 	Expression * Specialize::mutate( AddressExpr *addrExpr ) {
 		addrExpr->get_arg()->acceptMutator( *this );
+		assert( ! addrExpr->get_results().empty() );
 		addrExpr->set_arg( doSpecialization( addrExpr->get_results().front(), addrExpr->get_arg() ) );
 		return addrExpr;
@@ -173,5 +175,9 @@
 	Expression * Specialize::mutate( CastExpr *castExpr ) {
 		castExpr->get_arg()->acceptMutator( *this );
-		castExpr->set_arg( doSpecialization( castExpr->get_results().front(), castExpr->get_arg() ) );
+		if ( ! castExpr->get_results().empty() ) {
+			// this may not be the correct condition, but previously the next statement 
+			// was happening unchecked, causing a crash on a cast to void
+			castExpr->set_arg( doSpecialization( castExpr->get_results().front(), castExpr->get_arg() ) );		
+		}
 		return castExpr;
 	}
Index: src/SymTab/Indexer.h
===================================================================
--- src/SymTab/Indexer.h	(revision b762122a40c826698fb24962773221850d6fb55f)
+++ src/SymTab/Indexer.h	(revision 24e7b47876ef3c234e0f76d220afbbf04427ce02)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 21:38:55 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Aug 05 13:51:39 2015
-// Update Count     : 4
+// Last Modified On : Thu Sep 17 16:05:38 2015
+// Update Count     : 5
 //
 
@@ -19,5 +19,4 @@
 #include <list>
 #include <string>
-#include <map>
 
 #include "SynTree/Visitor.h"
Index: src/SynTree/Expression.cc
===================================================================
--- src/SynTree/Expression.cc	(revision b762122a40c826698fb24962773221850d6fb55f)
+++ src/SynTree/Expression.cc	(revision 24e7b47876ef3c234e0f76d220afbbf04427ce02)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Aug 12 14:02:45 2015
-// Update Count     : 30
+// Last Modified On : Wed Sep 02 12:07:10 2015
+// Update Count     : 33
 //
 
@@ -31,7 +31,6 @@
 Expression::Expression( Expression *_aname ) : env( 0 ), argName( _aname ) {}
 
-Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ) {
+Expression::Expression( const Expression &other ) : env( maybeClone( other.env ) ), argName( maybeClone( other.get_argName() ) ) {
 	cloneAll( other.results, results );
-	argName = other.get_argName();
 }
 
