diff --git a/simulators/c++2/src_simulator/TEPE/TimeMMConstraint.cpp b/simulators/c++2/src_simulator/TEPE/TimeMMConstraint.cpp
index 251a5b1ade7ef2c6dbaf847ebd3477e4b94722b8..9b2d0dccdd13b75bd9e9824669fa4d26e7d3b92a 100644
--- a/simulators/c++2/src_simulator/TEPE/TimeMMConstraint.cpp
+++ b/simulators/c++2/src_simulator/TEPE/TimeMMConstraint.cpp
@@ -77,7 +77,7 @@ void TimeMMConstraint::evalInput(){
 		if (_disabledNotified==TRUE && !_includeBounds) _constrEnabled=false;
 		if(_constrEnabled){
 			if (_s1Notified==TRUE){
-				if (_s1Time==-1){
+			  if (_s1Time==(unsigned int)-1){
 					_s1Time = SchedulableDevice::getSimulatedTime();
 					aEnaFlag |=2;
 				}else{
@@ -87,7 +87,7 @@ void TimeMMConstraint::evalInput(){
 					}
 				}
 			}
-			if (_s1Time!=-1){
+			if (_s1Time!=(unsigned int)-1){
 				//if (_simTime-_s1Time>_tmax) reportPropViolation();
 				if (SchedulableDevice::getSimulatedTime() - _s1Time>_tmax) reportPropOccurrence(false);
 
@@ -104,7 +104,7 @@ void TimeMMConstraint::evalInput(){
 		}
 		_constrEnabled |= (_enabledNotified==TRUE);
 		if (_disabledNotified==TRUE){
-			if (_s1Time!=-1) aEnaFlag |=1; //NEW to investigate
+		  if (_s1Time!=(unsigned int)-1) aEnaFlag |=1; //NEW to investigate
 			reset();
 		}
 		notifiedReset();
diff --git a/simulators/c++2/src_simulator/TEPE/TimeTConstraint.cpp b/simulators/c++2/src_simulator/TEPE/TimeTConstraint.cpp
index 45afea1d6bfeabd5b26862ed16a872b82ee5276f..96849ae164377fb5909e1c5cf0fdd2ad76093c8b 100644
--- a/simulators/c++2/src_simulator/TEPE/TimeTConstraint.cpp
+++ b/simulators/c++2/src_simulator/TEPE/TimeTConstraint.cpp
@@ -77,14 +77,14 @@ void TimeTConstraint::evalInput(){
 		if (_disabledNotified==TRUE && !_includeBounds) _constrEnabled=false;
 		if(_constrEnabled){
 			if (_s1Notified==TRUE){
-				if (_s1Time==-1){
+			  if (_s1Time==(unsigned int)-1){
 					_s1Time = SchedulableDevice::getSimulatedTime();
 					aEnaFlag |=2;
 				}else{
 					if (_retrigger) _s1Time = SchedulableDevice::getSimulatedTime();
 				}
 			}
-			if (_s1Time!=-1 && SchedulableDevice::getSimulatedTime() -_s1Time>=_t){
+			if (_s1Time!=(unsigned int)-1 && SchedulableDevice::getSimulatedTime() -_s1Time>=_t){
 				if (SchedulableDevice::getSimulatedTime() - _s1Time > _t && _aboveConstr!=0) _aboveConstr[0]->forceDisable();
 				aEnaFlag |=1;
 				aSigOut=true;
@@ -94,7 +94,7 @@ void TimeTConstraint::evalInput(){
 		}
 		_constrEnabled |= (_enabledNotified==TRUE);
 		if (_disabledNotified==TRUE){
-			if (_s1Time!=-1) aEnaFlag |=1; //NEW to investigate
+		  if (_s1Time!=(unsigned int)-1) aEnaFlag |=1; //NEW to investigate
 			reset();
 		}
 		notifiedReset();
diff --git a/simulators/c++2/src_simulator/app/TMLEventFBChannel.h b/simulators/c++2/src_simulator/app/TMLEventFBChannel.h
index 4d08eb44643779c7162e46d297c8aee78d3bcac2..d8fa24ece43d78d7ad5c4fdd90a287972d84ee54 100644
--- a/simulators/c++2/src_simulator/app/TMLEventFBChannel.h
+++ b/simulators/c++2/src_simulator/app/TMLEventFBChannel.h
@@ -85,9 +85,9 @@ public:
 
 	void write(TMLTransaction* iTrans){
 #ifdef LOSS_ENABLED
-		if (this->_maxNbOfLosses > this->_nbOfLosses && this->_lossRate!=0 && myrand(0,99) < this->_lossRate){
+	  if (this->_maxNbOfLosses > this->_nbOfLosses && this->_lossRate!=0 && (unsigned int)myrand(0,99) < this->_lossRate){
 			this->_nbOfLosses++;
-		}else{
+		} else {
 #endif
 			this->_content++;
 			if (paramNo!=0){
diff --git a/simulators/c++2/src_simulator/app/TMLRandomChoiceCommand.cpp b/simulators/c++2/src_simulator/app/TMLRandomChoiceCommand.cpp
index fc7fe258efbc8fb9b5dacebb49d659a81772612f..cc68e0a29659236879e35df03642609137f95b9e 100644
--- a/simulators/c++2/src_simulator/app/TMLRandomChoiceCommand.cpp
+++ b/simulators/c++2/src_simulator/app/TMLRandomChoiceCommand.cpp
@@ -49,7 +49,7 @@ TMLRandomChoiceCommand::TMLRandomChoiceCommand(ID iID, TMLTask* iTask, RangeFunc
 
 TMLCommand* TMLRandomChoiceCommand::prepareNextTransaction(){
 	ParamType aMin, aMax;
-	if (_randomValue==-1){
+	if (_randomValue==(unsigned int)-1){
 		_randomValue = (_task->*_rangeFunc)(aMin, aMax);
 		//if (_ID==234) std::cout << "Random value set randomly:" << _randomValue << "\n";
 		if (aMin==-1)
@@ -66,7 +66,7 @@ TMLCommand* TMLRandomChoiceCommand::prepareNextTransaction(){
 	TMLCommand* aNextCommand=getNextCommand();
 	//std::cout << _ID << " set next:" << (_randomValue+1) << "\n";
 	_task->setCurrCommand(aNextCommand);
-	_randomValue=-1;
+	_randomValue=(unsigned int)-1;
 	_execTimes++;
 #ifdef STATE_HASH_ENABLED
 	if (_liveVarList!=0) _task->refreshStateHash(_liveVarList);
diff --git a/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp b/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp
index 84ade6893da6687f40c3bb70e4933efa57698a13..caa144b3352a36326145129efccbe4e68ebfe5a2 100644
--- a/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp
+++ b/simulators/c++2/src_simulator/arch/MultiCoreCPU.cpp
@@ -455,7 +455,7 @@ int MultiCoreCPU::allTrans2XML(std::ostringstream& glob, int maxNbOfTrans) const
   return total;
 }
 
-void MultiCoreCPU::latencies2XML(std::ostringstream& glob, int id1, int id2) {
+void MultiCoreCPU::latencies2XML(std::ostringstream& glob, unsigned int id1, unsigned int id2) {
 
   for(TransactionList::const_iterator i=_transactList.begin(); i != _transactList.end(); ++i){
     if ((*i)->getCommand() !=NULL){
diff --git a/simulators/c++2/src_simulator/arch/MultiCoreCPU.h b/simulators/c++2/src_simulator/arch/MultiCoreCPU.h
index 4b36bdcd777101039fd86c138e90527c1048323e..4e9f7b938f041335b37a82b0731df3c202e9d9be 100644
--- a/simulators/c++2/src_simulator/arch/MultiCoreCPU.h
+++ b/simulators/c++2/src_simulator/arch/MultiCoreCPU.h
@@ -117,7 +117,7 @@ public:
     	*/
 	int allTrans2XML(std::ostringstream& glob, int maxNbOfTrans) const;
 
-	void latencies2XML(std::ostringstream& glob, int id1, int id2);
+	void latencies2XML(std::ostringstream& glob, unsigned int id1, unsigned int id2);
 	virtual void streamBenchmarks(std::ostream& s) const;
 	virtual void reset();
 	inline void streamStateXML(std::ostream& s) const {streamBenchmarks(s);}
diff --git a/simulators/c++2/src_simulator/definitions.cpp b/simulators/c++2/src_simulator/definitions.cpp
index 0e735ba97b6e1fcc169b6e6b96fb41a740b43260..c968bc4b38cf46fe8774d5120fae1472b619dfde 100644
--- a/simulators/c++2/src_simulator/definitions.cpp
+++ b/simulators/c++2/src_simulator/definitions.cpp
@@ -130,7 +130,7 @@ int getexename(	char* buf,
 	pid = getpid();
 	if (snprintf(linkname, sizeof(linkname), "/proc/%i/exe", pid) < 0) return -1;
 	ret = readlink(linkname, buf, size);
-	if (ret == -1 || ret>=size) return -1;
+	if (ret == -1 || (unsigned int)ret>=size) return -1;
 	buf[ret] = 0;
 	return ret;
 }
diff --git a/simulators/c++2/src_simulator/sim/Server.cpp b/simulators/c++2/src_simulator/sim/Server.cpp
index d21a10fb4e172ebecbbf72ea0d73610b4eafe0b2..98c5f7d9fd885a9a58b4fd4233a71f7ee4543a38 100644
--- a/simulators/c++2/src_simulator/sim/Server.cpp
+++ b/simulators/c++2/src_simulator/sim/Server.cpp
@@ -107,7 +107,8 @@ int Server::run(){
 			//accept a connection: accept(filedescriptor, pointer to address information of caller, size of address information)
 			perror("accept");
 		}
-		char* aMsg="You are connected to the simulation server. Please enter a command:\0";
+		std::string msg ="You are connected to the simulation server. Please enter a command:\0";
+		const char *aMsg = msg.c_str();
 		if (send(_socketClient, aMsg, strlen(aMsg), 0) == -1) perror("send");
 		int aNumberOfBytes=0, aStringPos=0, aReturnPos;
 		char s[INET6_ADDRSTRLEN];