Index: /Interface_Web/trunk/pspaWT/sources/controler/include/dataManager.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/include/dataManager.h	(revision 418)
+++ /Interface_Web/trunk/pspaWT/sources/controler/include/dataManager.h	(revision 419)
@@ -31,5 +31,5 @@
   particleBeam* getDiagnosticBeam(string elementLabel);
 
-  void addSectionToExecute(abstractElement* debut,int debutIndex, abstractElement* fin, int finIndex, abstractSoftware* prog);
+  sectionToExecute*  addSectionToExecute(abstractElement* debut,int debutIndex, abstractElement* fin, int finIndex, nomDeLogiciel logiciel);
 
   abstractElement* addElement(nomdElements::typedElement elemType);
@@ -65,9 +65,8 @@
     bool restoreElements(string inputFileName);
     
-    abstractSoftware* createSoftwareConnexion(nomDeLogiciel logi);
     
     /** return the jobList size
      */
-    inline int getJobListSize() {
+    inline int getJobListSize() const {
         return jobList_.size();
     }
@@ -86,9 +85,18 @@
      return NULL if the index does not exist
      */
-    inline sectionToExecute* getJobListAt(int a) {
-        if (a < 0) return NULL;
-        if (a >= getJobListSize()) return NULL;
-        return jobList_[a];
-    }
+
+    /* inline sectionToExecute* getJobListAt(int a) { */
+    /*     if (a < 0) return NULL; */
+    /*     if (a >= getJobListSize()) return NULL; */
+    /*     return jobList_[a]; */
+    /* } */
+
+
+
+    /* inline const abstractSoftware* getSoftwareOfSection( int index) const { */
+    /*     if (index < 0) return NULL; */
+    /*     if (index >= getJobListSize()) return NULL; */
+    /* 	return jobList_[index]->getSoftware(); */
+    /* } */
     
     /** Clear a specific jobList */
@@ -111,5 +119,6 @@
     void removeFile(string nameOfFile);
     void clearSectionToExecute();
- 
+     abstractSoftware* createSoftwareConnexion(nomDeLogiciel logi);
+
   };
 #endif
Index: /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 418)
+++ /Interface_Web/trunk/pspaWT/sources/controler/include/sectionToExecute.h	(revision 419)
@@ -25,13 +25,13 @@
     
     /** Deprecated : To be removed ! */
-    inline int getElementNumberInSection() {
+    inline int getElementNumberInSection() const {
         return firstElementNumberInBeamLine;
     }
     
     /** Deprecated : To be removed ! */
-    inline int getLastElementNumberInSection()  {
+    inline int getLastElementNumberInSection()  const {
         return lastElementNumberInBeamLine;
     }
-    inline abstractSoftware* getSoftware() {
+    inline abstractSoftware* getSoftware() const {
         return software;
     }
Index: /Interface_Web/trunk/pspaWT/sources/controler/src/abstractSoftware.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/src/abstractSoftware.cc	(revision 418)
+++ /Interface_Web/trunk/pspaWT/sources/controler/src/abstractSoftware.cc	(revision 419)
@@ -1,5 +1,5 @@
 #include "abstractSoftware.h"
 #include "dataManager.h"
-
+#include <algorithm>
 abstractSoftware::abstractSoftware()
 {
Index: /Interface_Web/trunk/pspaWT/sources/controler/src/dataManager.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/src/dataManager.cc	(revision 418)
+++ /Interface_Web/trunk/pspaWT/sources/controler/src/dataManager.cc	(revision 419)
@@ -64,7 +64,27 @@
 }
 
-void dataManager::addSectionToExecute(abstractElement* debut,int debutIndex, abstractElement* fin, int finIndex, abstractSoftware* prog)
-{
-    jobList_.push_back(new sectionToExecute(debut, debutIndex, fin, finIndex, prog));
+sectionToExecute*  dataManager::addSectionToExecute(abstractElement* debut,int debutIndex, abstractElement* fin, int finIndex, nomDeLogiciel logiciel)
+{
+  abstractSoftware* prog;
+  string inputFileName;
+  if(logiciel == nomDeLogiciel::parmela) {
+    inputFileName = "parmin";
+    prog = new softwareParmela(inputFileName, &globParam_, this);
+  } else if (logiciel  == nomDeLogiciel::transport) {
+    inputFileName = "transport.input";
+    prog =  new softwareTransport(inputFileName, &globParam_, this);
+  } else if (logiciel == nomDeLogiciel::generator) {
+    inputFileName = "generator.in";
+    prog = new softwareGenerator(inputFileName, &globParam_, this);
+  } else if (logiciel  == nomDeLogiciel::test) {
+    prog = new softwareTest(inputFileName, &globParam_, this);
+  } else {
+    prog = NULL;
+  }
+
+  //  abstractSoftware* prog = createSoftwareConnexion(logiciel);
+  jobList_.push_back(new sectionToExecute(debut, debutIndex, fin, finIndex, prog));
+  //  return prog;
+  return jobList_.back();
 }
 
@@ -81,6 +101,13 @@
 
 void dataManager::clearSectionToExecute(int a) {
+  cout << " dataManager::clearSectionToExecute efaacement section d'index : " << a << endl;
   if (a<0) return;
   if (a>= jobList_.size()) return;
+
+  // lors de la creation de la section on a fait un 'new' d'un softwareXXXX
+  // on fait ici le 'delete'
+
+  const abstractSoftware* soft = jobList_.at(a)->getSoftware();
+    if ( soft != NULL ) delete soft;
   jobList_.erase (jobList_.begin()+a);
 }
@@ -160,5 +187,4 @@
       }
       
-      delete softw;
       if ( success ) {
 	currentBeam_ = &diagnosticBeam_.at(indexElementToIndexDiag_.back());
@@ -328,15 +354,20 @@
     string inputFileName;
     if(logi == nomDeLogiciel::parmela) {
+      cout << " dataManager::createSoftwareConnexion : logiciel identifie : parmela " << endl;
         inputFileName = "parmin";
         return new softwareParmela(inputFileName, &globParam_, this);
     } else if (logi == nomDeLogiciel::transport) {
+      cout << " dataManager::createSoftwareConnexion : logiciel identifie : transport " << endl;
         inputFileName = "transport.input";
         return new softwareTransport(inputFileName, &globParam_, this);
     } else if (logi == nomDeLogiciel::generator) {
+      cout << " dataManager::createSoftwareConnexion : logiciel identifie : generator " << endl;
         inputFileName = "generator.in";
         return new softwareGenerator(inputFileName, &globParam_, this);
     } else if (logi == nomDeLogiciel::test) {
+      cout << " dataManager::createSoftwareConnexion : logiciel identifie : test " << endl;
         return new softwareTest(inputFileName, &globParam_, this);
     } else {
+      cout << " dataManager::createSoftwareConnexion : logiciel identifie : null " << endl;
         return NULL;
     }
Index: /Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc	(revision 418)
+++ /Interface_Web/trunk/pspaWT/sources/controler/src/sectionToExecute.cc	(revision 419)
@@ -18,2 +18,3 @@
     software = s;
 }
+
Index: /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc
===================================================================
--- /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 418)
+++ /Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_softwarePanel.cc	(revision 419)
@@ -104,6 +104,7 @@
   
   
-  abstractSoftware* soft = NULL;
-  dtmanage_->addSectionToExecute(premierElement,premierIndex, dernierElement, dernierIndex, soft);
+  //  abstractSoftware* soft = NULL;
+  //  dtmanage_->addSectionToExecute(premierElement,premierIndex, dernierElement, dernierIndex, soft);
+  dtmanage_->addSectionToExecute(premierElement,premierIndex, dernierElement, dernierIndex, nomDeLogiciel());
 
   std::string premierElementLabel = "";
@@ -340,11 +341,12 @@
     
       nomDeLogiciel prog = nomDeLogiciel ( sections_[a]->getSoftwareCurrentText().toUTF8());
-      abstractSoftware* softToExec = dtmanage_->createSoftwareConnexion(prog);
-      dtmanage_->addSectionToExecute(pspa_->getBeamLine()->getAbstractElement(debut),
+      //      abstractSoftware* softToExec = dtmanage_->createSoftwareConnexion(prog);
+      sectionToExecute* sectToExec = dtmanage_->addSectionToExecute(pspa_->getBeamLine()->getAbstractElement(debut),
 				     debut,
 				     pspa_->getBeamLine()->getAbstractElement(fin),
 				     fin,
-				     softToExec);
-    
+				     prog);
+
+      abstractSoftware* softToExec = sectToExec->getSoftware(); 
       diagnosticErrors = "";
       diagnosticWarnings = "";
