diff --git a/package_bgs/av/TBackgroundVuMeter.cpp b/package_bgs/av/TBackgroundVuMeter.cpp
index 5aab897295cf28ba5e3bb771ba3a3ada4baaee18..5c802ce4071633edb901d07b4d4173e7d3220587 100644
--- a/package_bgs/av/TBackgroundVuMeter.cpp
+++ b/package_bgs/av/TBackgroundVuMeter.cpp
@@ -56,7 +56,7 @@ void TBackgroundVuMeter::Clear(void)
         cvReleaseImage(&m_pHist[i]);
     }
 
-    delete m_pHist;
+    delete[] m_pHist;
     m_pHist = NULL;
     m_nBinCount = 0;
   }
diff --git a/package_bgs/jmo/BlobExtraction.cpp b/package_bgs/jmo/BlobExtraction.cpp
index cd728fe34314dedda69e2bcb509fab22d97e77b3..c3d2bea679c147872f3acbd293e01bcef8c5f36a 100644
--- a/package_bgs/jmo/BlobExtraction.cpp
+++ b/package_bgs/jmo/BlobExtraction.cpp
@@ -1241,7 +1241,12 @@ namespace Blob
         }
       }	// end Main loop
 
-      if (ErrorFlag != 0) return false;
+      if (ErrorFlag != 0) {
+          delete[] Transition;
+          delete[] ThisRegion;
+          delete[] LastRegion;
+          return false;
+      }
       // ens situem al primer pixel de la seguent fila
       pImage = inputImage->imageData - 1 + startCol + (ThisRow + startRow) * inputImage->widthStep;
 
@@ -1362,9 +1367,9 @@ namespace Blob
 
     //free(RegionData);
     free(SubsumedRegion);
-    delete Transition;
-    delete ThisRegion;
-    delete LastRegion;
+    delete[] Transition;
+    delete[] ThisRegion;
+    delete[] LastRegion;
 
     if (imatgePerimetreExtern) cvReleaseImage(&imatgePerimetreExtern);
 
diff --git a/package_bgs/tb/FuzzyUtils.cpp b/package_bgs/tb/FuzzyUtils.cpp
index 84d5a5092da97601ebe2608351362de7465e9206..fcb1972b3d21438c92333762b522c49a7e043800 100644
--- a/package_bgs/tb/FuzzyUtils.cpp
+++ b/package_bgs/tb/FuzzyUtils.cpp
@@ -338,7 +338,6 @@ void FuzzyUtils::getFuzzyIntegralChoquet(IplImage* H, IplImage* Delta, int n, fl
   float *Integral = (float*) malloc(3*(sizeof(float)));
   float* X = (float*) malloc(1*sizeof(float));
   float* XiXj = (float*) malloc(1*sizeof(float));
-  float* IntegralFlou1 = (float*) malloc(1*sizeof(float));
   float IntegralFlou;
 
   *Indice = 0;
@@ -508,4 +507,6 @@ void FuzzyUtils::AdaptativeSelectiveBackgroundModelUpdate(IplImage* CurrentImage
   free(BGImagePixel);
   free(OutputImagePixel);
   free(IntegralImagePixel);
+  free(Maximum);
+  free(Minimum);
 }