diff --git a/LCS/Blob/include/Blob/BlobIBufVector.h b/LCS/Blob/include/Blob/BlobIBufVector.h
index 3b8dc272272dba55c77f9495979ef92945af08f9..4c484492e9221041b405605903f92d570215940e 100644
--- a/LCS/Blob/include/Blob/BlobIBufVector.h
+++ b/LCS/Blob/include/Blob/BlobIBufVector.h
@@ -43,8 +43,9 @@ namespace LOFAR {
     public:
       // Construct from a vector.
       explicit BlobIBufVector (const std::vector<T>& buffer)
-	: BlobIBufChar(&buffer[0], buffer.size()*sizeof(T))
-	{}
+	: BlobIBufChar(buffer.empty()  ?  0 : &(buffer[0]),
+		       buffer.size()*sizeof(T))
+      {}
       
       // Destructor.
       virtual ~BlobIBufVector()
diff --git a/LCS/Blob/include/Blob/BlobOBufVector.h b/LCS/Blob/include/Blob/BlobOBufVector.h
index 4e48323f9990502870c4dd0c3b6f17443db12c33..177ccd72cbf5f6119000963fa5865c6ebc6e2042 100644
--- a/LCS/Blob/include/Blob/BlobOBufVector.h
+++ b/LCS/Blob/include/Blob/BlobOBufVector.h
@@ -53,12 +53,12 @@ namespace LOFAR {
       // not be deleted before this object.
       explicit BlobOBufVector (std::vector<T>& buffer,
 			       uint expandSize=1024, uint start=0)
-	: BlobOBufChar(&buffer[0], buffer.capacity(),
-		       expandSize, start, false),
-	itsVector (&buffer)
+	: BlobOBufChar(buffer.empty()  ?  0 : &(buffer[0]),
+		       buffer.capacity(), expandSize, start, false),
+	  itsVector   (&buffer)
 	{
 	  ASSERT(sizeof(T)==1);
-	  ASSERT(start <= buffer.size());
+          ASSERT(start <= buffer.size());
 	}
       
       // Destructor.
@@ -71,9 +71,11 @@ namespace LOFAR {
 	{
 	  if (newReservedSize > itsVector->capacity()) {
 	    itsVector->reserve (newReservedSize);
-	    setBuffer (&((*itsVector)[0]));
 	  }
 	  itsVector->resize (newSize);
+	  if (newSize > 0) {
+	    setBuffer (&((*itsVector)[0]));
+	  }
 	}
       
       std::vector<T>* itsVector;