diff --git a/src/InputOutput/IHMImpl/Config/IHMConfigClass.php b/src/InputOutput/IHMImpl/Config/IHMConfigClass.php
index 966144b..6f022d8 100644
--- a/src/InputOutput/IHMImpl/Config/IHMConfigClass.php
+++ b/src/InputOutput/IHMImpl/Config/IHMConfigClass.php
@@ -78,6 +78,11 @@ class IHMConfigClass
 	{
 		return self::getUserWSPath().self::$userParamMgrFile;
 	}
+	
+	public static function getUserDerivedParamFilePath($paramId)
+	{
+		return self::getUserWSPath().$paramId.".xml";
+	}
 
 	public static function getLocalParamDBPath()
 	{
diff --git a/src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php b/src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php
index 61a1d4e..1b2015d 100644
--- a/src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php
+++ b/src/InputOutput/IHMImpl/Params/DataMiningImpl/IHMInputOutputParamsDataMiningClass.php
@@ -37,7 +37,7 @@ class IHMInputOutputParamsDataMiningClass extends IHMInputOutputParamsAbstractCl
 		//create a derived param for the expression
 		$this->paramManager->addProcessParam($paramId, $expressionInfo["expression"],
 				$expressionInfo['params'], $input->sampling,
-				$input->gap,$this->paramsData);
+				$input->gap,time(),$this->paramsData);
 			
 		//add derived param to output
 		$paramsNode->addParam($paramId);
diff --git a/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php b/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
index 31bcf89..313d1ae 100644
--- a/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
+++ b/src/InputOutput/IHMImpl/Tools/IHMParamManagerClass.php
@@ -34,9 +34,9 @@ class IHMParamManagerClass
 	/*
 	 * @brief Add a process parameter
 	*/
-	public function addProcessParam($paramId,$expression,$params,$sampling,$gap,$paramsData)
+	public function addProcessParam($paramId,$expression,$params,$sampling,$gap,$dateModif,$paramsData)
 	{
-		$paramsData->addProcessParamToCreate($paramId, $expression, $params, $sampling, $gap);
+		$paramsData->addProcessParamToCreate($paramId, $expression, $params, $sampling, $gap,$dateModif);
 
 		foreach ($params as $param)
 			$this->addExistingParam($param,$paramsData);
@@ -151,7 +151,7 @@ class IHMParamManagerClass
 		//create a process param for the derived parameter
 		$this->addProcessParam($paramId, $expressionInfo["expression"],
 				$expressionInfo['params'], $res["param"]["timestep"],
-				0,$paramsData);
+				0,$res["param"]["dateModif"],$paramsData);
 		
 		return array("id" => $paramId, "indexes" => array(), "calib_infos" => array());
 	}
diff --git a/src/InputOutput/IHMImpl/Tools/IHMUserParamLoaderClass.php b/src/InputOutput/IHMImpl/Tools/IHMUserParamLoaderClass.php
index 22a8702..f12f5c5 100644
--- a/src/InputOutput/IHMImpl/Tools/IHMUserParamLoaderClass.php
+++ b/src/InputOutput/IHMImpl/Tools/IHMUserParamLoaderClass.php
@@ -83,6 +83,9 @@ class IHMUserParamLoaderClass
 				//id
 				$paramId         = $derivedParamNode->getAttribute(self::$mgrDerivedParamIdAtt);
 				
+				//modification date
+				$dateModif       = filemtime(IHMConfigClass::getUserDerivedParamFilePath($paramId));
+				
 				//name
 				$paramName       = $derivedParamNode->getAttribute(self::$mgrDerivedParamNameAtt);
 				
@@ -97,7 +100,8 @@ class IHMUserParamLoaderClass
 					"name"       => $paramName,
 					"expression" => $paramExpression,
 					"timestep"   => $paramTimeStep,
-					"info"       => $this->loadDerivedParameterInfo($id)
+					"info"       => $this->loadDerivedParameterInfo($id),
+					"dateModif"  => $dateModif
 				));
 			}
 		}
diff --git a/src/Request/ParamsRequestImpl/ParamsRequestClass.php b/src/Request/ParamsRequestImpl/ParamsRequestClass.php
index cbdfd74..f396a31 100644
--- a/src/Request/ParamsRequestImpl/ParamsRequestClass.php
+++ b/src/Request/ParamsRequestImpl/ParamsRequestClass.php
@@ -82,6 +82,8 @@ class ParamsRequestClass extends ProcessRequestClass
 				$this->requestData->setLastErrorMessage('Cannot copy param definition file for '.$key);
 				return false;
 			}
+			
+			touch($destinationFile, filemtime($value));
 		}
 
 		//create processed params files
@@ -91,7 +93,7 @@ class ParamsRequestClass extends ProcessRequestClass
 			$doc->preserveWhiteSpace = false;
 			$doc->formatOutput = true;
 
-			if (!$xmlNode = $value->toXMLNode($doc))
+			if (!$xmlNode = $value["param"]->toXMLNode($doc))
 			{
 				$this->requestData->setLastErrorMessage('Cannot create params XML file for '.$key);
 				return false;
@@ -111,6 +113,8 @@ class ParamsRequestClass extends ProcessRequestClass
 				$this->requestData->setLastErrorMessage('Cannot save params XML file for '.$key);
 				return false;
 			}
+			
+			touch($destinationFile, $value["dateModif"]);
 		}
 
 		return true;
diff --git a/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php b/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
index 0717cac..437956e 100644
--- a/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
+++ b/src/Request/ParamsRequestImpl/ParamsRequestDataClass.php
@@ -59,7 +59,7 @@ class ParamsRequestDataClass extends ProcessRequestDataClass
 		return $this->processParamsToCreate;
 	}
 
-	public function addProcessParamToCreate($paramId, $expression, $getParams, $sampling, $gap)
+	public function addProcessParamToCreate($paramId, $expression, $getParams, $sampling, $gap, $dateModif)
 	{
 		$newParam = new ParamNodeClass();
 		$newParam->setId($paramId);
@@ -73,7 +73,7 @@ class ParamsRequestDataClass extends ProcessRequestDataClass
 		}
 		$newParam->setProcess($expression);
 		$newParam->setOutput();
-		$this->processParamsToCreate[$paramId] = $newParam;
+		$this->processParamsToCreate[$paramId] = array('param' => $newParam, 'dateModif' => $dateModif);
 	}
 }
 
--
libgit2 0.21.2