Index: libcfa/src/heap.cfa
===================================================================
--- libcfa/src/heap.cfa	(revision b0a0ee4e6d49fbba76a24cff5e7e4191d56ea00e)
+++ libcfa/src/heap.cfa	(revision 2b23d781b7a9f2fa92a7750bffc73cf9ec34e3c1)
@@ -10,6 +10,6 @@
 // Created On       : Tue Dec 19 21:58:35 2017
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sun Jul 19 17:37:21 2020
-// Update Count     : 806
+// Last Modified On : Mon Jul 20 23:00:32 2020
+// Update Count     : 808
 //
 
@@ -901,4 +901,5 @@
 	  if ( oalign == 0 && size <= odsize && odsize <= size * 2 ) { // allow 50% wasted storage for smaller size
 			header->kind.real.blockSize &= -2;			// no alignment and turn off 0 fill
+			if ( size != odsize ) header->kind.real.size = size; // reset allocation size
 			return oaddr;
 		} // if
@@ -929,7 +930,6 @@
 
 		size_t odsize = dataStorage( bsize, oaddr, header ); // data storage available in bucket
-	  if ( size <= odsize && odsize <= size * 2 ) {	// allow up to 50% wasted storage in smaller size
-			// Do not know size of original allocation => cannot do 0 fill for any additional space because do not know
-			// where to start filling, i.e., do not overwrite existing values in space.
+	  if ( size <= odsize && odsize <= size * 2 ) {		// allow up to 50% wasted storage in smaller size
+			if ( size != odsize ) header->kind.real.size = size; // reset allocation size
 			return oaddr;
 		} // if
@@ -1227,4 +1227,5 @@
 		if ( size <= odsize && odsize <= size * 2 ) {	// allow 50% wasted storage for smaller size
 			header->kind.real.blockSize &= -2;			// turn off 0 fill
+			if ( size != odsize ) header->kind.real.size = size; // reset allocation size
 			return oaddr;
 		} // if
