Index: libcfa/src/parseconfig.cfa
===================================================================
--- libcfa/src/parseconfig.cfa	(revision 5241ec2da2e4522e41241f1c2402821e845d498b)
+++ libcfa/src/parseconfig.cfa	(revision 4bdb7bf6466e64d8f5e04fe8c389f88c63ec4387)
@@ -91,5 +91,5 @@
 		} // for
 	} catch( Open_Failure * ex; ex->istream == &in ) {
-		^(*kv_pairs){};
+		delete( kv_pairs );
 		exit | "Error: could not open input file '" | config_file | "'";
 		// HERE (unfreed storage)
@@ -124,5 +124,8 @@
 				// Validate the parsed data, if necessary
 				if ( entries[j].validate != (bool (*)(void *))0p ) {
-					if ( !entries[j].validate( entries[j].variable ) ) throw (Validation_Failure){ entries[j] }; // HERE (segfaults on throw)
+					if ( !entries[j].validate( entries[j].variable ) ) {
+						delete( kv_pairs );
+						throw (Validation_Failure){ entries[j] };
+					}
 				}
 
@@ -134,6 +137,5 @@
 	}
 
-	^(*kv_pairs){};
-	// HERE (unfreed storage)
+	delete( kv_pairs );
 } // processConfigFile
 
