diff --git a/applications/calibration-multi/src/main.cpp b/applications/calibration-multi/src/main.cpp
index 7256c48fe115d13fa31b251f9be130a78621d7e2..d8f20041f63f76cdb6a683010d37fc4acbd818c4 100644
--- a/applications/calibration-multi/src/main.cpp
+++ b/applications/calibration-multi/src/main.cpp
@@ -126,7 +126,6 @@ bool setRectifyRPC(ftl::net::Universe* net, ftl::stream::Net* nstream, bool enab
 bool setIntrinsicsRPC(ftl::net::Universe* net, ftl::stream::Net* nstream, Size size, vector<Mat> K, vector<Mat> D) {
 	Mat K0 = K[0].t();
 	Mat K1 = K[1].t();
-
 	return net->call<bool>(	nstream->getPeer(), "set_intrinsics",
 							vector<int>{size.width, size.height},
 							vector<double>(K0.begin<double>(), K0.end<double>()),
@@ -208,19 +207,19 @@ void calibrateRPC(	ftl::net::Universe* net,
 		auto *nstream = nstreams[c/2];
 		while(true) {
 			try {
-				/*setIntrinsicsRPC(net, nstream,
+				setIntrinsicsRPC(net, nstream,
 					params.size,
 					vector<Mat>{calib.getCameraMat(c), calib.getCameraMat(c+1)},
 					vector<Mat>{calib.getDistCoeffs(c), calib.getDistCoeffs(c+1)}
-				);*/
+				);
 				setExtrinsicsRPC(net, nstream, R_c1c2, T_c1c2);
 				setPoseRPC(net, nstream, Rt_out[c]);
 				saveCalibrationRPC(net, nstream);
 				LOG(INFO) << "CALIBRATION SENT";
 				break;
 			}
-			catch (...) {
-				LOG(ERROR) << "RPC failed!";
+			catch (std::exception ex) {
+				LOG(ERROR) << "RPC failed: " << ex.what();
 				sleep(1);
 			}
 		}
@@ -315,15 +314,18 @@ void runCameraCalibration(	ftl::Configurable* root,
 	}
 
 	for (auto *nstream: nstreams) {
-		bool res = false;
-		try { res = setRectifyRPC(net, nstream, false); }
-		catch (...) {}
-
-		if (!res) {
-			LOG(ERROR) << "set_rectify() failed for " << *(nstream->get<string>("uri"));
-		}
-		else {
-			LOG(INFO) << "rectification disabled for " << *(nstream->get<string>("uri"));
+		bool res = true;
+		while(res) {
+			try { res = setRectifyRPC(net, nstream, false); }
+			catch (...) {}
+
+			if (res) {
+				LOG(ERROR) << "set_rectify() failed for " << *(nstream->get<string>("uri"));
+				std::this_thread::sleep_for(std::chrono::milliseconds(100));
+			}
+			else {
+				LOG(INFO) << "rectification disabled for " << *(nstream->get<string>("uri"));
+			}
 		}
 	}
 	
diff --git a/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp b/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp
index b5b2ae2dba9e0e35d85105b3d748e947604442df..b28fed8de0ea35d3def19da869f7fc2dc57b26e2 100644
--- a/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp
+++ b/components/rgbd-sources/src/sources/stereovideo/stereovideo.cpp
@@ -123,8 +123,8 @@ void StereoVideoSource::init(const string &file) {
 
 	host_->getNet()->bind("set_intrinsics",
 		[this](	std::vector<int> size,
-				std::vector<double> camera_l, std::vector<double> d_left,
-				std::vector<double> camera_r, std::vector<double> d_right) {
+				std::vector<double> camera_l, std::vector<double> dist_l,
+				std::vector<double> camera_r, std::vector<double> dist_r) {
 		if ((size.size() != 2) || (camera_l.size() != 9) || (camera_r.size() != 9)) {
 			LOG(ERROR) << "bad intrinsic parameters (wrong size)";
 			return false;
@@ -132,8 +132,8 @@ void StereoVideoSource::init(const string &file) {
 		cv::Size calib_size(size[0], size[1]);
 		cv::Mat K_l = cv::Mat(camera_l).reshape(1, 3).t();
 		cv::Mat K_r = cv::Mat(camera_r).reshape(1, 3).t();
-		cv::Mat D_l = cv::Mat(D_l);
-		cv::Mat D_r = cv::Mat(D_r);
+		cv::Mat D_l = cv::Mat(dist_l);
+		cv::Mat D_r = cv::Mat(dist_r);
 		
 		if (!calib_->setIntrinsics(calib_size, {K_l, K_r}, {D_l, D_r})) {
 			LOG(ERROR) << "bad intrinsic parameters (bad values)";