Index: src/Parser/DeclarationNode.cc
===================================================================
--- src/Parser/DeclarationNode.cc	(revision a4da45ee15c7b12fa95d6fa3d7ed164730c4d88e)
+++ src/Parser/DeclarationNode.cc	(revision 4c0b674ab581090dfc425f4931071a611831ff0d)
@@ -82,4 +82,6 @@
 
 DeclarationNode::~DeclarationNode() {
+	delete name;
+
 //	delete variable.name;
 	delete variable.assertions;
Index: src/Parser/DeclarationNode.h
===================================================================
--- src/Parser/DeclarationNode.h	(revision a4da45ee15c7b12fa95d6fa3d7ed164730c4d88e)
+++ src/Parser/DeclarationNode.h	(revision 4c0b674ab581090dfc425f4931071a611831ff0d)
@@ -131,4 +131,6 @@
 	DeclarationNode * get_last() { return (DeclarationNode *)ParseNode::get_last(); }
 
+	const std::string * name = nullptr;
+
 	struct Variable_t {
 //		const std::string * name;
Index: src/Parser/ParseNode.h
===================================================================
--- src/Parser/ParseNode.h	(revision a4da45ee15c7b12fa95d6fa3d7ed164730c4d88e)
+++ src/Parser/ParseNode.h	(revision 4c0b674ab581090dfc425f4931071a611831ff0d)
@@ -48,5 +48,5 @@
   public:
 	ParseNode() {};
-	virtual ~ParseNode() { delete next; delete name; };
+	virtual ~ParseNode() { delete next; };
 	virtual ParseNode * clone() const = 0;
 
@@ -73,5 +73,4 @@
 
 	ParseNode * next = nullptr;
-	const std::string * name = nullptr;
 	CodeLocation location = yylloc;
 }; // ParseNode
