Index: source/ariba/utility/serialization/Data.hpp
===================================================================
--- source/ariba/utility/serialization/Data.hpp	(revision 7523)
+++ source/ariba/utility/serialization/Data.hpp	(revision 8620)
@@ -396,12 +396,20 @@
 		size_t res_length = calcLength(new_length);
 		if (old_length != res_length) {
-			T* new_buffer = new T[res_length];
-			if (bufferPtr != NULL) {
-				size_t clength = res_length < old_length ? res_length : old_length;
-				memcpy( new_buffer, bufferPtr, clength*sizeof(T) );
-				delete [] bufferPtr;
+
+			if(res_length <= 0){
+				if (bufferPtr != NULL) delete [] bufferPtr;
+				bufferPtr = NULL;
+				bufferLen = 0;
+			}else{
+				T* new_buffer = new T[res_length];
+				if (new_buffer != NULL) memset(new_buffer, 0, res_length*sizeof(T));
+				if (bufferPtr != NULL) {
+					size_t clength = res_length < old_length ? res_length : old_length;
+					memcpy( new_buffer, bufferPtr, clength*sizeof(T) );
+					delete [] bufferPtr;
+				}
+				bufferPtr = new_buffer;
+				bufferLen = new_length;
 			}
-			bufferPtr = new_buffer;
-			bufferLen = new_length;
 		}
 	}
