Index: src/libcfa/stdlib
===================================================================
--- src/libcfa/stdlib	(revision 9d169f1181d92ac0bdba02acb8b3119fab0ce3c8)
+++ src/libcfa/stdlib	(revision bf76eab344f9d8463553c6545fc21cab6185ffc4)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:12:35 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jul  6 14:28:55 2016
-// Update Count     : 99
+// Last Modified On : Thu Feb 23 14:11:47 2017
+// Update Count     : 100
 //
 
@@ -50,5 +50,5 @@
 forall( dtype T, ttype Params | sized(T) | { void ?{}(T *, Params); } ) T * new( Params p );
 forall( dtype T | { void ^?{}(T *); } ) void delete( T * ptr );
-
+forall( dtype T, ttype Params | { void ^?{}(T *); void delete(Params); } ) void delete( T * ptr, Params rest );
 
 //---------------------------------------
Index: src/libcfa/stdlib.c
===================================================================
--- src/libcfa/stdlib.c	(revision 9d169f1181d92ac0bdba02acb8b3119fab0ce3c8)
+++ src/libcfa/stdlib.c	(revision bf76eab344f9d8463553c6545fc21cab6185ffc4)
@@ -10,6 +10,6 @@
 // Created On       : Thu Jan 28 17:10:29 2016
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jul  6 14:28:57 2016
-// Update Count     : 169
+// Last Modified On : Thu Feb 23 14:11:29 2017
+// Update Count     : 170
 //
 
@@ -91,4 +91,13 @@
 }
 
+forall( dtype T, ttype Params | { void ^?{}(T *); void delete(Params); } )
+void delete( T * ptr, Params rest ) {
+	if ( ptr ) {
+		^ptr{};
+		free( ptr );
+	}
+	delete( rest );
+}
+
 //---------------------------------------
 
