diff --git a/CommonLibs/Vector.h b/CommonLibs/Vector.h
index 51a9fb1..9119683 100644
--- a/CommonLibs/Vector.h
+++ b/CommonLibs/Vector.h
@@ -204,10 +204,15 @@
 	*/
 	void copyToSegment(Vector<T>& other, size_t start, size_t span) const
 	{
-		T* base = other.mStart + start;
-		assert(base+span<=other.mEnd);
+		unsigned int i;
+		T* dst = other.mStart + start;
+		T* src = mStart;
+		assert(dst+span<=other.mEnd);
 		assert(mStart+span<=mEnd);
-		memcpy(base,mStart,span*sizeof(T));
+		for (i = 0; i < span; i++, src++, dst++)
+			*dst = *src;
+		/*TODO if not non-trivially copyable type class, optimize:
+		memcpy(dst,mStart,span*sizeof(T)); */
 	}
 
 	/** Copy all of this Vector to a segment of another Vector. */
diff --git a/Transceiver52M/signalVector.cpp b/Transceiver52M/signalVector.cpp
index 55dad92..fc8157e 100644
--- a/Transceiver52M/signalVector.cpp
+++ b/Transceiver52M/signalVector.cpp
@@ -41,7 +41,14 @@
 void signalVector::operator=(const signalVector& vector)
 {
 	resize(vector.size() + vector.getStart());
-	memcpy(mData, vector.mData, bytes());
+
+	unsigned int i;
+	complex *dst = mData;
+	complex *src = vector.mData;
+	for (i = 0; i < size(); i++, src++, dst++)
+		*dst = *src;
+	/* TODO: optimize for non non-trivially copyable types: */
+	/*memcpy(mData, vector.mData, bytes()); */
 	mStart = mData + vector.getStart();
 }
 
@@ -58,8 +65,13 @@
 size_t signalVector::updateHistory()
 {
 	size_t num = getStart();
-
-	memmove(mData, mStart + this->size() - num, num * sizeof(complex));
+	unsigned int i;
+	complex *dst = mData;
+	complex *src = mStart + this->size() - num;
+	for (i = 0; i < num; i++, src++, dst++)
+		*dst = *src;
+	/* TODO: optimize for non non-trivially copyable types: */
+	/*memmove(mData, mStart + this->size() - num, num * sizeof(complex)); */
 
 	return num;
 }
