diff --git a/src/algorithms/MultiCue.cpp b/src/algorithms/MultiCue.cpp
index 54cedb7ba7c4aea1ad16ef32ddf91c718b094e69..5c55ab2bda37e4a165c49e68265bf209ce59b795 100644
--- a/src/algorithms/MultiCue.cpp
+++ b/src/algorithms/MultiCue.cpp
@@ -99,6 +99,7 @@ void MultiCue::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat &i
   img_background = cv::Mat::zeros(img_input.size(), img_input.type());
   img_foreground = cv::cvarrToMat(result_image, TRUE);
   cvReleaseImage(&result_image);
+  cvReleaseImage(&frame);
 
 #ifndef MEX_COMPILE_FLAG
   if (showOutput)
@@ -551,6 +552,8 @@ void MultiCue::GaussianFiltering(IplImage* frame, uchar*** aFilteredFrame) {
         aFilteredFrame[i][j][2] = img->imageData[i*img->widthStep + j * 3 + 2];
       }
     }
+
+    cvReleaseImage(&img);
   }
 }
 
diff --git a/src/algorithms/MultiLayer.cpp b/src/algorithms/MultiLayer.cpp
index 397b85181f0e67420623a401258e5e56dda0850f..2d2c6e67ded3511284337b33338ed2464d397594 100644
--- a/src/algorithms/MultiLayer.cpp
+++ b/src/algorithms/MultiLayer.cpp
@@ -206,8 +206,7 @@ void MultiLayer::process(const cv::Mat &img_input, cv::Mat &img_output, cv::Mat
 
   img_foreground.copyTo(img_output);
   img_background.copyTo(img_bgmodel);
-
-  //cvReleaseImage(&img);
+  cvReleaseImage(&img);
 
   firstTime = false;
   frameNumber++;