Index: /source/ariba/utility/serialization/DataStream.hpp
===================================================================
--- /source/ariba/utility/serialization/DataStream.hpp	(revision 6919)
+++ /source/ariba/utility/serialization/DataStream.hpp	(revision 6921)
@@ -516,5 +516,5 @@
 
 	/* array and vector support */
-	template<typename T, bool staticArray = false>
+	template<typename T>
 	class ArrayTpl : public ExplicitSerializer {
 	private:
@@ -524,8 +524,23 @@
 	public:
 		finline ArrayTpl( T*& array, size_t length ) :
-		v(0), l(length) {}
-
-		sznMethodBegin(X)
-		if (X.isDeserializer() && !staticArray) v = new T[l];
+		v(array), l(length) {}
+
+		sznMethodBegin(X)
+		if (X.isDeserializer()) v = new T[l];
+		for (size_t i=0; i<l; i++) X && v[i];
+		sznMethodEnd()
+	};
+
+	template<typename T>
+	class StaticArrayTpl : public ExplicitSerializer {
+	private:
+		T* v;
+		size_t l;
+
+	public:
+		finline StaticArrayTpl( T* array, size_t length ) :
+		v(array), l(length) {}
+
+		sznMethodBegin(X)
 		for (size_t i=0; i<l; i++) X && v[i];
 		sznMethodEnd()
@@ -559,6 +574,6 @@
 
 	template<typename T>
-	finline ArrayTpl<T,true> static_A( T*& array, size_t length ) {
-		return ArrayTpl<T, true>(array,length);
+	finline StaticArrayTpl<T> static_A( T* array, size_t length ) {
+		return StaticArrayTpl<T>(array,length);
 	}
 
