diff --git a/components/rgbd-sources/src/net.cpp b/components/rgbd-sources/src/net.cpp
index 12a76cc40d38f876f11cbc4919cf7bcb13a4bee5..68f46fc2b6879f437d6cbf76b56145af334e9e7a 100644
--- a/components/rgbd-sources/src/net.cpp
+++ b/components/rgbd-sources/src/net.cpp
@@ -150,8 +150,6 @@ void NetSource::_recvChunk(int64_t frame, int chunk, bool delta, const vector<un
 					// Lock to allow buffer swap
 					UNIQUE_LOCK(mutex_,lk2);
 
-					chunk_count_ = 0;
-
 					// Swap the double buffers
 					cv::Mat tmp;
 					tmp = rgb_;
@@ -161,6 +159,7 @@ void NetSource::_recvChunk(int64_t frame, int chunk, bool delta, const vector<un
 					depth_ = d_depth_;
 					d_depth_ = tmp;
 
+					chunk_count_ = 0;
 					timestamp_ = current_frame_;
 					current_frame_ = frame;
 				}
diff --git a/components/rgbd-sources/src/source.cpp b/components/rgbd-sources/src/source.cpp
index 913fe4acb53afb28b63c6e89d97e50dca6a669b6..c5efd26fc51068b74cfdc03e84cc3800a5931ea8 100644
--- a/components/rgbd-sources/src/source.cpp
+++ b/components/rgbd-sources/src/source.cpp
@@ -244,7 +244,7 @@ bool Source::compute(int N, int B) {
 		return true;
 	} else if (impl_ && impl_->compute(N,B)) {
 		timestamp_ = impl_->timestamp_;
-		cv::Mat tmp;
+		/*cv::Mat tmp;
 		rgb_.create(impl_->rgb_.size(), impl_->rgb_.type());
 		depth_.create(impl_->depth_.size(), impl_->depth_.type());
 		tmp = rgb_;
@@ -252,10 +252,13 @@ bool Source::compute(int N, int B) {
 		impl_->rgb_ = tmp;
 		tmp = depth_;
 		depth_ = impl_->depth_;
-		impl_->depth_ = tmp;
+		impl_->depth_ = tmp;*/
 
-		//impl_->rgb_.copyTo(rgb_);
-		//impl_->depth_.copyTo(depth_);
+		// TODO:(Nick) Reduce buffer copies
+		impl_->rgb_.copyTo(rgb_);
+		impl_->depth_.copyTo(depth_);
+		//rgb_ = impl_->rgb_;
+		//depth_ = impl_->depth_;
 		return true;
 	}
 	return false;