Index: doc/refrat/Makefile
===================================================================
--- doc/refrat/Makefile	(revision b762122a40c826698fb24962773221850d6fb55f)
+++ doc/refrat/Makefile	(revision 24e7b47876ef3c234e0f76d220afbbf04427ce02)
@@ -7,5 +7,5 @@
 ## Define the text source files.
 
-SOURCE = ${addsuffix .tex, \
+SOURCES = ${addsuffix .tex, \
 refrat \
 }
@@ -32,5 +32,6 @@
 
 clean :
-	rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t ${FIGURES} ${PICTURES} ${PROGRAMS} ${GRAPHS} ${basename ${DOCUMENT}}.ps ${DOCUMENT}
+	rm -f *.bbl *.aux *.dvi *.idx *.ilg *.ind *.brf *.out *.log *.toc *.blg *.pstex_t \
+		${FIGURES} ${PICTURES} ${PROGRAMS} ${GRAPHS} ${basename ${DOCUMENT}}.ps ${DOCUMENT}
 
 # File Dependencies #
@@ -42,17 +43,18 @@
 	dvips $< -o $@
 
-${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCE} ${basename ${DOCUMENT}}.bbl
+${basename ${DOCUMENT}}.dvi : Makefile ${GRAPHS} ${PROGRAMS} ${PICTURES} ${FIGURES} ${SOURCES} ${basename ${DOCUMENT}}.tex ${basename ${DOCUMENT}}.bib
+	# Conditionally create an empty *.ind (index) file for inclusion until makeindex is run.
+	if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
+	# Must have *.aux file containing citations for bibtex
+	if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename $@}.tex ; fi
+	-${BibTeX} ${basename $@}
+	# Some citations reference others so run steps again to resolve these citations
 	${LaTeX} ${basename $@}.tex
-	if fgrep -s "Label(s) may have changed" ${basename $@}.log ; then ${LaTeX} ${basename $@}.tex ; fi
+	-${BibTeX} ${basename $@}
+	# Make index from *.aux entries and input index at end of document
 	makeindex -s indexstyle ${basename $@}.idx
 	${LaTeX} ${basename $@}.tex
-	${LaTeX} ${basename $@}.tex		% to get index title in toc
-
-${basename ${DOCUMENT}}.bbl : ${basename ${DOCUMENT}}.tex ${basename ${DOCUMENT}}.bib
-	if [ ! -r ${basename $@}.ind ] ; then touch ${basename $@}.ind ; fi
-	if [ ! -r ${basename $@}.aux ] ; then ${LaTeX} ${basename $@}.tex ; fi
-	-${BibTeX} ${basename $@}
+	# Run again to get index title into table of contents
 	${LaTeX} ${basename $@}.tex
-	-${BibTeX} ${basename $@}
 
 ## Define the default recipes.
Index: doc/refrat/refrat.tex
===================================================================
--- doc/refrat/refrat.tex	(revision b762122a40c826698fb24962773221850d6fb55f)
+++ doc/refrat/refrat.tex	(revision 24e7b47876ef3c234e0f76d220afbbf04427ce02)
@@ -2,4 +2,8 @@
 
 \documentclass[openright,twoside]{report}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Latex packages used in the document.
+
 \usepackage{fullpage,times}
 \usepackage{xspace}
@@ -14,6 +18,44 @@
 \urlstyle{sf}
 
-%\input code.sty
-\input xref.tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Names used in the document.
+
+\newcommand{\CFA}{Cforall\xspace}		% set language text name
+\newcommand{\CFAA}{C$\forall$\xspace}	% set language symbolic name
+\newcommand{\CC}{C\kern-.1em\hbox{+\kern-.25em+}\xspace} % CC symbolic name
+\def\c11{ISO/IEC C} % C11 name (cannot have numbers in latex command name)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Specialized macros used in the document.
+
+\newcommand{\italic}[1]{\emph{\hyperpage{#1}}}
+\newcommand{\definition}[1]{\textbf{\hyperpage{#1}}}
+\newcommand{\see}[1]{\emph{see} #1}
+
+\makeatletter
+% Define some commands that produce formatted index entries suitable for cross-references.
+% ``\spec'' produces entries for specifications of entities.  ``\impl'' produces entries for their
+% implementations, and ``\use'' for their uses.
+
+%  \newcommand{\bold}[1]{{\bf #1}}
+%  \def\spec{\@bsphack\begingroup
+%             \def\protect##1{\string##1\space}\@sanitize
+%             \@wrxref{|bold}}
+\def\impl{\@bsphack\begingroup
+          \def\protect##1{\string##1\space}\@sanitize
+          \@wrxref{|definition}}
+\newcommand{\indexcode}[1]{{\lstinline$#1$}}
+\def\use{\@bsphack\begingroup
+         \def\protect##1{\string##1\space}\@sanitize
+         \@wrxref{|hyperpage}}
+\def\@wrxref#1#2{\let\thepage\relax
+    \xdef\@gtempa{\write\@indexfile{\string
+    \indexentry{#2@{\lstinline$#2$}#1}{\thepage}}}\endgroup\@gtempa
+    \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
+\makeatother
+%\newcommand{\use}[1]{\index{#1@{\lstinline$#1$}}}
+%\newcommand{\impl}[1]{\index{\protect#1@{\lstinline$\protect#1$}|definition}}
 
 \newcommand{\define}[1]{\emph{#1\/}\index{#1}}
@@ -37,8 +79,8 @@
 \def\syntax{\paragraph{Syntax}\trivlist\parindent=.5in\item[\hskip.5in]}
 \let\endsyntax=\endtrivlist
-\newcommand{\lhs}[1]{\par{\it #1:}\index{#1@{\it #1}|italic}}
+\newcommand{\lhs}[1]{\par{\emph{#1:}}\index{#1@{\emph{#1}}|italic}}
 \newcommand{\rhs}{\hfil\break\hbox{\hskip1in}}
-\newcommand{\oldlhs}[1]{{\it #1: \ldots}\index{#1@{\it #1}|italic}}
-\newcommand{\nonterm}[1]{{\it #1\/}\index{#1@{\it #1}|italic}}
+\newcommand{\oldlhs}[1]{\emph{#1: \ldots}\index{#1@{\emph{#1}}|italic}}
+\newcommand{\nonterm}[1]{\emph{#1\/}\index{#1@{\emph{#1}}|italic}}
 \newcommand{\opt}{$_{opt}$\ }
 
@@ -52,9 +94,4 @@
 \newcommand{\VPageref}[2][page]{\ifx#1\@empty\else{#1}\nobreakspace\fi\pageref{#2}}
 
-\newcommand{\CFA}{Cforall\xspace}
-\newcommand{\CFAA}{C$\forall$\xspace}
-\newcommand{\CC}{C\kern-.1em\hbox{+\kern-.25em+}\xspace}
-\def\c11{ISO/IEC C}% cannot have numbers in latex command name
-
 % replace/adjust characters that look bad in sanserif
 \makeatletter
@@ -63,7 +100,8 @@
 \lst@ProcessOther{"3C}{\lst@ttfamily{<}{\texttt{<}}} % replace less than
 \lst@ProcessOther{"3E}{\lst@ttfamily{<}{\texttt{>}}} % replace greater than
-\lst@ProcessOther{"5E}{$\sim$} % circumflex
+\lst@ProcessOther{"5E}{\raisebox{0.4ex}{$\scriptstyle\land\,$}} % circumflex
 \lst@ProcessLetter{"5F}{\lst@ttfamily{\char95}{{\makebox[1.2ex][c]{\rule{1ex}{0.1ex}}}}} % replace underscore
-\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde
+%\lst@ProcessOther{"7E}{\raisebox{-.4ex}[1ex][0pt]{\textasciitilde}} % lower tilde
+\lst@ProcessOther{"7E}{\raisebox{0.3ex}{$\scriptstyle\sim\,$}} % lower tilde
 \@empty\z@\@empty
 
@@ -74,5 +112,6 @@
 
 \lstdefinelanguage{CFA}[ANSI]{C}%
-  {morekeywords={asm,_Atomic,catch,choose,_Complex,context,dtype,fallthru,forall,ftype,_Imaginary,lvalue,restrict,throw,try,type,},
+  {morekeywords={asm,_Atomic,catch,catchResume,choose,_Complex,context,disable,dtype,enable,
+	fallthru,finally,forall,ftype,_Imaginary,lvalue,restrict,throw,throwResume,try,type,},
 }
 
@@ -84,6 +123,9 @@
 xleftmargin=\parindent,
 escapechar=@,
+%fancyvrb=true,
 %showtabs=true,
-%tab=\rightarrowfill,
+keepspaces=true,
+showtabs=true,
+tab=,
 }
 
@@ -91,4 +133,6 @@
 \setcounter{tocdepth}{3}		% subsubsections in table of contents
 \makeindex
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
 \begin{document}
@@ -691,5 +735,5 @@
 
 \examples
-The expression \lstinline$(void *)0}$\use{0} specializes the (polymorphic) null pointer to a null
+The expression \lstinline$(void *)0$\use{0} specializes the (polymorphic) null pointer to a null
 pointer to \lstinline$void$. \lstinline$(const void *)0$ does the same, and also uses a safe
 conversion from \lstinline$void *$ to \lstinline$const void *$. In each case, the null pointer
@@ -2425,5 +2469,5 @@
 
 The operands of the expression ``\lstinline$a || b$'' are treated as ``\lstinline$(int)((a)!=0)$''
-and ``\lstinline$(int)((b})!=0)$'', which shall both be unambiguous. The expression has only one
+and ``\lstinline$(int)((b))!=0)$'', which shall both be unambiguous. The expression has only one
 interpretation, which is of type \lstinline$int$.
 
@@ -4036,4 +4080,9 @@
 \section{Statements and blocks}
 
+\begin{syntax}
+\oldlhs{statement}
+\rhs \nonterm{exception-statement}
+\end{syntax}
+
 Many statements contain expressions, which may have more than one interpretation. The following
 sections describe how the \CFA translator selects an interpretation. In all cases the result of the
@@ -4041,5 +4090,32 @@
 
 
-\setcounter{subsection}{2}
+\subsection{Labeled statements}
+
+\begin{syntax}
+\oldlhs{labeled-statement}
+\rhs \lstinline$case$ \nonterm{case-value-list} : \nonterm{statement}
+\lhs{case-value-list}
+\rhs \nonterm{case-value}
+\rhs \nonterm{case-value-list} \lstinline$,$ \nonterm{case-value}
+\lhs{case-value}
+\rhs \nonterm{constant-expression}
+\rhs \nonterm{subrange}
+\lhs{subrange}
+\rhs \nonterm{constant-expression} \lstinline$~$ \nonterm{constant-expression}
+\end{syntax}
+
+The following have identical meaning:
+\begin{lstlisting}
+case 1:  case 2:  case 3:  case 4:  case 5:
+case 1, 2, 3, 4, 5:
+case 1~5:
+\end{lstlisting}
+Multiple subranges are allowed:
+\begin{lstlisting}
+case 1~4, 9~14, 27~32:
+\end{lstlisting}
+The \lstinline$case$ and \lstinline$default$ clauses are restricted within the \lstinline$switch$ and \lstinline$choose$ statements, precluding Duff's device.
+
+
 \subsection{Expression and null statements}
 
@@ -4049,11 +4125,49 @@
 \subsection{Selection statements}
 
-The controlling expression \lstinline$E$ in the switch statement
+\begin{syntax}
+\oldlhs{selection-statement}
+\rhs \lstinline$choose$ \lstinline$($ \nonterm{expression} \lstinline$)$ \nonterm{statement}
+\end{syntax}
+
+The controlling expression \lstinline$E$ in the \lstinline$switch$ and \lstinline$choose$ statement:
 \begin{lstlisting}
 switch ( E ) ...
-\end{lstlisting}
-may have more than one interpretation, but it shall have only one interpretation with an integral
-type. An \Index{integer promotion} is performed on the expression if necessary.  The constant
-expressions in \lstinline$case$ statements with the switch are converted to the promoted type.
+choose ( E ) ...
+\end{lstlisting}
+may have more than one interpretation, but it shall have only one interpretation with an integral type.
+An \Index{integer promotion} is performed on the expression if necessary.
+The constant expressions in \lstinline$case$ statements with the switch are converted to the promoted type.
+
+
+\setcounter{subsubsection}{3}
+\subsubsection{The \lstinline$choose$ statement}
+
+The \lstinline$choose$ statement is the same as the \lstinline$switch$ statement except control transfers to the end of the \lstinline$choose$ statement at a \lstinline$case$ or \lstinline$default$ labeled statement.
+The \lstinline$fallthru$ statement is used to fall through to the next \lstinline$case$ or \lstinline$default$ labeled statement.
+The following have identical meaning:
+\begin{flushleft}
+\begin{tabular}{@{\hspace{2em}}l@{\hspace{2em}}l@{}}
+\begin{lstlisting}
+switch (...) {
+  case 1: ... ; break;
+  case 2: ... ; break;
+  case 3: ... ; // fall through
+  case 4: ... ; // fall through
+  default: ... break;
+}
+\end{lstlisting}
+&
+\begin{lstlisting}
+choose (...) {
+  case 1: ... ; // exit
+  case 2: ... ; // exit
+  case 3: ... ; fallthru;
+  case 4: ... ; fallthru;
+  default: ... ; // exit
+}
+\end{lstlisting}
+\end{tabular}
+\end{flushleft}
+The \lstinline$choose$ statement addresses the problem of accidental fall-through associated with the \lstinline$switch$ statement.
 
 
@@ -4074,5 +4188,5 @@
 is treated as
 \begin{lstlisting}
-for ( ( void )( a ); ( int )(( b )!=0); ( void )( c ) ) @\ldots@
+for ( ( void )( a ); ( int )(( b )!=0); ( void )( c ) ) ...
 \end{lstlisting}
 
@@ -4080,6 +4194,108 @@
 \subsection{Jump statements}
 
-An expression in a \lstinline$return$ statement is treated as being 
-cast to the result type of the function.
+\begin{syntax}
+\oldlhs{jump-statement}
+\rhs \lstinline$continue$ \nonterm{identifier}\opt
+\rhs \lstinline$break$ \nonterm{identifier}\opt
+\rhs \ldots
+\rhs \lstinline$throw$ \nonterm{assignment-expression}\opt
+\rhs \lstinline$throwResume$ \nonterm{assignment-expression}\opt \nonterm{at-expression}\opt
+\lhs{at-expression} \lstinline$_At$ \nonterm{assignment-expression}
+\end{syntax}
+
+Labeled \lstinline$continue$ and \lstinline$break$ allow useful but restricted control-flow that reduces the need for the \lstinline$goto$ statement for exiting multiple nested control-structures.
+\begin{lstlisting}
+L1: {							// compound
+  L2: switch ( ... ) {			// switch
+	  case ...:
+	  L3: for ( ;; ) {			// outer for
+		L4: for ( ;; ) {		// inner for
+				continue L1;	// error: not enclosing iteration
+				continue L2;	// error: not enclosing iteration
+				continue L3;	// next iteration of outer for
+				continue L4;	// next iteration of inner for
+				break L1;		// exit compound
+				break L2;		// exit switch
+				break L3;		// exit outer for
+				break L4;		// exit inner for
+			} // for
+		} // for
+		break;					// exit switch
+	  default:
+		break L1;				// exit compound
+	} // switch
+	...
+} // compound
+\end{lstlisting}
+
+
+\setcounter{subsubsection}{1}
+\subsubsection{The \lstinline$continue$ statement}
+
+The identifier in a \lstinline$continue$ statement shall name a label located on an enclosing iteration statement.
+
+
+\subsubsection{The \lstinline$break$ statement}
+
+The identifier in a \lstinline$break$ statement shall name a label located on an enclosing compound, selection or iteration statement.
+
+
+\subsubsection{The \lstinline$return$ statement}
+
+An expression in a \lstinline$return$ statement is treated as being cast to the result type of the function.
+
+
+\subsubsection{The \lstinline$throw$ statement}
+
+When an exception is raised, \Index{propagation} directs control from a raise in the source execution to a handler in the faulting execution.
+
+
+\subsubsection{The \lstinline$throwResume$ statement}
+
+
+\subsection{Exception statements}
+
+\begin{syntax}
+\lhs{exception-statement}
+\rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{handler-list}
+\rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{finally-clause}
+\rhs \lstinline$try$ \nonterm{compound-statement} \nonterm{handler-list} \nonterm{finally-clause}
+\lhs{handler-list}
+\rhs \nonterm{handler-clause}
+\rhs \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
+\rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
+\rhs \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
+\rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \ldots \lstinline$)$ \nonterm{compound-statement}
+\lhs{handler-clause}
+\rhs \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
+\rhs \nonterm{handler-clause} \lstinline$catch$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
+\rhs \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
+\rhs \nonterm{handler-clause} \lstinline$catchResume$ \lstinline$($ \nonterm{exception-declaration} \lstinline$)$ \nonterm{compound-statement}
+\lhs{finally-clause}
+\rhs \lstinline$finally$ \nonterm{compound-statement}
+\lhs{exception-declaration}
+\rhs \nonterm{type-specifier}
+\rhs \nonterm{type-specifier} \nonterm{declarator}
+\rhs \nonterm{type-specifier} \nonterm{abstract-declarator}
+\rhs \nonterm{new-abstract-declarator-tuple} \nonterm{identifier}
+\rhs \nonterm{new-abstract-declarator-tuple}
+\lhs{asynchronous-statement}
+\rhs \lstinline$enable$ \nonterm{identifier-list} \nonterm{compound-statement}
+\rhs \lstinline$disable$ \nonterm{identifier-list} \nonterm{compound-statement}
+\end{syntax}
+
+\Index{Exception statement}s allow a dynamic call to a handler for \Index{recovery} (\Index{termination}) or \Index{correction} (\Index{resumption}) of an \Index{abnormal event}.
+
+
+\subsubsection{The \lstinline$try$ statement}
+
+The \lstinline$try$ statement is a block with associated handlers, called a \Index{guarded block};
+all other blocks are \Index{unguarded block}s.
+A \lstinline$goto$, \lstinline$break$, \lstinline$return$, or \lstinline$continue$ statement can be used to transfer control out of a try block or handler, but not into one.
+
+
+\subsubsection{The \lstinline$enable$/\lstinline$disable$ statements}
+
+The \lstinline$enable$/\lstinline$disable$ statements toggle delivery of \Index{asynchronous exception}s.
 
 
Index: c/refrat/xref.tex
===================================================================
--- doc/refrat/xref.tex	(revision b762122a40c826698fb24962773221850d6fb55f)
+++ 	(revision )
@@ -1,26 +1,0 @@
-\makeatletter
-  % Define some commands that produce formatted index entries suitable for
-  % cross-references.  ``\spec'' produces entries for specifications of
-  % entities.  ``\impl'' produces entries for their implementations, and
-  % ``\use'' for their uses.
-%  \newcommand{\bold}[1]{{\bf #1}}
-  \def\spec{\@bsphack\begingroup
-             \def\protect##1{\string##1\space}\@sanitize
-             \@wrxref{|bold}}
-  \newcommand{\italic}[1]{{\em #1}}
-  \def\impl{\@bsphack\begingroup
-             \def\protect##1{\string##1\space}\@sanitize
-             \@wrxref{|italic}}
-  \newcommand{\indexcode}[1]{{\lstinline$#1$}}
-  \def\use{\@bsphack\begingroup
-             \def\protect##1{\string##1\space}\@sanitize
-             \@wrxref{|indexcode}}
-  \newcommand{\see}[2]{\emph{see} #1}
-  %% \def\use{\@bsphack\begingroup
-  %%            \def\protect##1{\string##1\space}\@sanitize
-  %%            \@wrxref{}}
-  \def\@wrxref#1#2{\let\thepage\relax
-     \xdef\@gtempa{\write\@indexfile{\string
-        \indexentry{#2@{\lstinline$#2$}#1}{\thepage}}}\endgroup\@gtempa
-     \if@nobreak \ifvmode\nobreak\fi\fi\@esphack}
-\makeatother
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();
 }
 
