diff --git a/contrib/applications/platform/P300Stimulator/src/evidence-accumulation/ovexP300IEvidenceAccumulator.h b/contrib/applications/platform/P300Stimulator/src/evidence-accumulation/ovexP300IEvidenceAccumulator.h
index 108a4019e821b126b1580fbc63b8c0c23eb0bc5e..1b78a2239ad8d97dfb20cdd9f3cb21368a04d7c3 100644
--- a/contrib/applications/platform/P300Stimulator/src/evidence-accumulation/ovexP300IEvidenceAccumulator.h
+++ b/contrib/applications/platform/P300Stimulator/src/evidence-accumulation/ovexP300IEvidenceAccumulator.h
@@ -164,7 +164,7 @@ namespace OpenViBEApplications
 					if(!(fproba->getBufferElementCount()==currentFlashGroup->size()))
 						return NULL;
 
-					for(int i=0; i<currentFlashGroup->size(); i++)
+					for(unsigned int i=0; i<currentFlashGroup->size(); i++)
 					{
 						(*(buffer+i))=proba*currentFlashGroup->at(i);
 					}
diff --git a/contrib/applications/platform/P300Stimulator/src/ovexP300Visualiser.cpp b/contrib/applications/platform/P300Stimulator/src/ovexP300Visualiser.cpp
index 84a27a0e837a1c30193e4d7c271d0630b062c320..6c1546ee56fd32a4e9f389f99152480caabfac47 100644
--- a/contrib/applications/platform/P300Stimulator/src/ovexP300Visualiser.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/ovexP300Visualiser.cpp
@@ -225,7 +225,7 @@ void ExternalP300Visualiser::processWaitCallback(uint32 eventID)
 boolean ExternalP300Visualiser::areWeQuitting(void)
 {
 	GLFWwindow* window = externalVisualiser->getMainContainer()->getWindow();
-	return (boolean)glfwWindowShouldClose(window);
+	return ( glfwWindowShouldClose(window)!=0 );
 }
 
 void ExternalP300Visualiser::process(uint32 eventID)
diff --git a/contrib/applications/platform/P300Stimulator/src/properties/ovexP300InterfacePropertyReader.cpp b/contrib/applications/platform/P300Stimulator/src/properties/ovexP300InterfacePropertyReader.cpp
index 314e19025923043f84fc155cbbcf4fe060d698f3..f4962cd229b1335bf5888a4f5ad90acf675bda7b 100644
--- a/contrib/applications/platform/P300Stimulator/src/properties/ovexP300InterfacePropertyReader.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/properties/ovexP300InterfacePropertyReader.cpp
@@ -64,7 +64,7 @@ void P300InterfacePropertyReader::openChild(const char* sName, const char** sAtt
 				//m_ui32WindowHeight = strtoul(*(sAttributeValue+it),NULL,0);
 				m_f32WindowHeight = static_cast<float32>(m_pKernelContext->getConfigurationManager().expandAsUInteger(CString(*(sAttributeValue+it))));
 			else if(CString(*(sAttributeName+it))==CString("index"))
-				m_ui32MonitorIndex = static_cast<float32>(m_pKernelContext->getConfigurationManager().expandAsUInteger(CString(*(sAttributeValue+it))));
+				m_ui32MonitorIndex = static_cast<uint32>(m_pKernelContext->getConfigurationManager().expandAsUInteger(CString(*(sAttributeValue+it))));
 		}
 	}
 	if (CString(sName)==CString("FeedbackPresentation"))
diff --git a/contrib/applications/platform/P300Stimulator/src/properties/ovexP300PropertyReader.cpp b/contrib/applications/platform/P300Stimulator/src/properties/ovexP300PropertyReader.cpp
index 0f447e3a024ac15bbadb81421ec806dcca0fd73a..7cdd7f9cd7d9e7df55427a07aa08f2122b3084d5 100644
--- a/contrib/applications/platform/P300Stimulator/src/properties/ovexP300PropertyReader.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/properties/ovexP300PropertyReader.cpp
@@ -17,7 +17,7 @@ void ExternalP300PropertyReader::readPropertiesFromFile(CString propertyFile)
 	{
 		int l_iFileLen;
 		l_oPropertiesStream.seekg(0, ios::end);
-		l_iFileLen=l_oPropertiesStream.tellg();
+		l_iFileLen=(int)l_oPropertiesStream.tellg();
 		l_oPropertiesStream.seekg(0, ios::beg);
 
 		l_PropertiesBuffer.setSize(l_iFileLen, true);//set size and discard true
@@ -58,4 +58,4 @@ void ExternalP300PropertyReader::writeElement(const char* sName, const char* sDa
 	}
 	else
 		m_pKernelContext->getLogManager() << LogLevel_Trace << "End property " << sName << "\n";
-}
\ No newline at end of file
+}
diff --git a/contrib/applications/platform/P300Stimulator/src/properties/ovexP300ScreenLayoutReader.cpp b/contrib/applications/platform/P300Stimulator/src/properties/ovexP300ScreenLayoutReader.cpp
index ea35054f5aebd349aff9b3550e97ca220292037d..c2e5584993d630339bd905997b0870157cdbe996 100644
--- a/contrib/applications/platform/P300Stimulator/src/properties/ovexP300ScreenLayoutReader.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/properties/ovexP300ScreenLayoutReader.cpp
@@ -272,9 +272,9 @@ void P300ScreenLayoutReader::readPropertiesFromFile(CString propertyFile)
 		{
 			m_lSymbolList->push_back(m_lKeyList->at(i)->getLabel(NOFLASH));
 		}
-		catch (exception& e)
+		catch (exception& )
 		{
 			m_lSymbolList->push_back(std::string("DUMMY"));
 		}
 	}
-}
\ No newline at end of file
+}
diff --git a/contrib/applications/platform/P300Stimulator/src/visualisation/glGLabel.cpp b/contrib/applications/platform/P300Stimulator/src/visualisation/glGLabel.cpp
index 4ad01113508239ad3814fe0233fa9399dc93bd22..bbe554f2f8705a4bdbb38f28723b58f1c08004d2 100644
--- a/contrib/applications/platform/P300Stimulator/src/visualisation/glGLabel.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/visualisation/glGLabel.cpp
@@ -76,7 +76,7 @@ void GLabel::computeLabelPosition()
 
 void GLabel::computeMaximumLabelSize()
 {
-	m_f32MaxLabelSize = 0.9*std::min(getHeight(),getWidth());	
+	m_f32MaxLabelSize = float32(0.9*std::min(getHeight(),getWidth()));
 }
 
 void GLabel::generateGLDisplayLists()
diff --git a/contrib/applications/platform/P300Stimulator/src/visualisation/glGSymbol.cpp b/contrib/applications/platform/P300Stimulator/src/visualisation/glGSymbol.cpp
index 2c88e150472158d5733c388e1280a6417af57313..8cf766a1ce699895152082101e13fcbd16742188 100644
--- a/contrib/applications/platform/P300Stimulator/src/visualisation/glGSymbol.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/visualisation/glGSymbol.cpp
@@ -18,7 +18,7 @@ GSymbol::GSymbol(const char * symbol, OpenViBE::CString fontPath, OpenViBE::floa
 
 	m_sFontFile = std::string(fontPath.toASCIIString());
 	desc = pango_font_description_from_string (m_sFontFile.c_str());
-	pango_font_description_set_size(desc, m_f32LabelScaleSize*m_f32MaxLabelSize*PANGO_SCALE);
+	pango_font_description_set_size(desc, gint(m_f32LabelScaleSize*m_f32MaxLabelSize*PANGO_SCALE));
 	pango_layout_set_font_description (m_olayout, desc);
 	pango_font_description_free (desc);
 	generateGLDisplayLists();
@@ -179,7 +179,7 @@ void GSymbol::render_text(const char *text, int *text_width, int *text_height, u
 			pango_layout_set_text(layout, text, -1);			// sets the text to be associated with the layout (final arg is length, -1
 																					// to calculate automatically when passing a nul-terminated string)
 			desc = pango_font_description_from_string(pango_font_description_to_string(pango_layout_get_font_description(m_olayout)));//("Sans Bold 100");		// specify the font that would be ideal for your particular use
-			float32 size =  float32(m_f32LabelScaleSize*m_f32MaxLabelSize*PANGO_SCALE)/1.387535079;
+			gint size =  gint(m_f32LabelScaleSize*m_f32MaxLabelSize*PANGO_SCALE);
 			pango_font_description_set_size(desc,size);//*10000);
 			pango_layout_set_font_description(layout, desc);			// assign the previous font description to the layout
 			pango_font_description_free(desc);					// free the description
@@ -341,7 +341,7 @@ void GSymbol::generateGLDisplayLists()
 {
 	unsigned int texture_id;
 	GLabel::generateGLDisplayLists();
-	float32 size =  float32(m_f32LabelScaleSize*m_f32MaxLabelSize*PANGO_SCALE)/1.387535079;//mysterious pango to ftgl font point ratio
+	gint size =  gint(m_f32LabelScaleSize*m_f32MaxLabelSize*PANGO_SCALE);
 	PangoFontDescription *desc;
 	desc = pango_font_description_from_string(m_sFontFile.c_str());//("Sans Bold 100");		// specify the font that would be ideal for your particular use
 	pango_font_description_set_size(desc, size);
@@ -349,10 +349,10 @@ void GSymbol::generateGLDisplayLists()
 	pango_font_description_free(desc);
 	computeLabelPosition();
 
-	int offx = m_pLabelPosition.first - getX();
-	int offy = m_pLabelPosition.second-getY();
-	int text_width = getWidth()-2*offx;
-	int text_height = getHeight()-2*offy;
+	int offx = (int)(m_pLabelPosition.first - getX());
+	int offy = (int)(m_pLabelPosition.second-getY());
+	int text_width = (int)(getWidth()-2*offx);
+	int text_height = (int)(getHeight()-2*offy);
 
 	glNewList(getGLResourceID(1),GL_COMPILE); 
 		glLoadIdentity();
diff --git a/contrib/applications/platform/P300Stimulator/src/visualisation/glP300MainContainer.cpp b/contrib/applications/platform/P300Stimulator/src/visualisation/glP300MainContainer.cpp
index d430796ddbbfe7852a1c83abdd7992b197e2db39..6a4775b1bedeaa9b4204e73b3c317d3905a8d36d 100644
--- a/contrib/applications/platform/P300Stimulator/src/visualisation/glP300MainContainer.cpp
+++ b/contrib/applications/platform/P300Stimulator/src/visualisation/glP300MainContainer.cpp
@@ -17,7 +17,7 @@ using namespace std;
 GLFWwindow* P300MainContainer::m_oGLFWWindow;
 
 P300MainContainer::P300MainContainer(P300InterfacePropertyReader* propertyObject, P300ScreenLayoutReader* layoutPropObject, int width, int height) :
-GContainer(0.0f,0.0f,width,height), m_pInterfacePropertyObject(propertyObject),
+GContainer(0.0f,0.0f,(float32)width,(float32)height), m_pInterfacePropertyObject(propertyObject),
 m_pScreenLayoutObject(layoutPropObject)
 {
 	#ifdef OUTPUT_TIMING
@@ -163,8 +163,8 @@ void P300MainContainer::initializeGL(OpenViBE::boolean fullScreen, OpenViBE::flo
 		//*
 		const GLFWvidmode* mode = glfwGetVideoMode(primary);
 		//ignore whatever width and height were given and use the screen size
-		width = mode->width;
-		height = mode->height;
+		width = (float32)mode->width;
+		height = (float32)mode->height;
 		std::cout << "index " << index << " mode width " << width << " mode height " << height << "\n";
 		//*/
 
diff --git a/plugins/processing/signal-processing/src/algorithms/basic/ovpCMatrixVariance.cpp b/plugins/processing/signal-processing/src/algorithms/basic/ovpCMatrixVariance.cpp
index 80ba3c2867108c4902610d03f0f85ac6b891ff6f..17ca4b8180a06a1e6eab846139621f113d5ea359 100644
--- a/plugins/processing/signal-processing/src/algorithms/basic/ovpCMatrixVariance.cpp
+++ b/plugins/processing/signal-processing/src/algorithms/basic/ovpCMatrixVariance.cpp
@@ -229,7 +229,7 @@ boolean CMatrixVariance::process(void)
 			}
 
 			//computing confidence bounds
-			float32 l_f32Quantile = quantile(complement(l_oStudentDistribution,ip_f64SignificanceLevel/2.0f));
+			float32 l_f32Quantile = (float32)quantile(complement(l_oStudentDistribution,ip_f64SignificanceLevel/2.0f));
 			getLogManager() << LogLevel_Debug << "Quantile at " <<  ip_f64SignificanceLevel << " is " << l_f32Quantile << "\n";
 			Vec<float64> l_f64Bound;
 			if(ip_ui64AveragingMethod==OVP_TypeId_EpochAverageMethod_CumulativeAverage.toUInteger())
diff --git a/plugins/processing/simple-visualisation/src/ovpCBoxAlgorithmErpPlot.cpp b/plugins/processing/simple-visualisation/src/ovpCBoxAlgorithmErpPlot.cpp
index 6735c8de0bfe8d2aff3d656f57aa675b122cc3de..8e939b8a293d74a77773af9b78da09c0a6423c67 100644
--- a/plugins/processing/simple-visualisation/src/ovpCBoxAlgorithmErpPlot.cpp
+++ b/plugins/processing/simple-visualisation/src/ovpCBoxAlgorithmErpPlot.cpp
@@ -586,7 +586,7 @@ boolean CBoxAlgorithmErpPlot::process(void)
                         if(m_vDecoders[inputi/2]->isHeaderReceived() && !m_bFirstHeaderReceived)
                         {
                                 uint32 l_ui32NrOfElectrodes = m_vDecoders[inputi/2]->getOutputMatrix()->getDimensionSize(0);
-                                uint32 l_ui32NrOfColumns = ceil(sqrt((double)l_ui32NrOfElectrodes));
+								uint32 l_ui32NrOfColumns = (uint32)ceil(sqrt((double)l_ui32NrOfElectrodes));
 
                                 //create list of graph subplots
                                 for (uint32 dimi=0; dimi<l_ui32NrOfElectrodes; dimi++)