diff --git a/htdocs/opensurvey/class/opensurveysondage.class.php b/htdocs/opensurvey/class/opensurveysondage.class.php
index 6d4baf7568bd002bcf71d9d25488e8151d4ce7ee..22f66a2c2a4c89da42ef3dd2a78af655c4468e9f 100644
--- a/htdocs/opensurvey/class/opensurveysondage.class.php
+++ b/htdocs/opensurvey/class/opensurveysondage.class.php
@@ -51,6 +51,9 @@ class Opensurveysondage extends CommonObject
 	var $format;
 	var $mailsonde;
 	var $canedit;
+	
+	public $origin;
+	public $sujet;
 
 	/**
 	 * Allow comments on this poll
@@ -89,16 +92,18 @@ class Opensurveysondage extends CommonObject
 
 		// Clean parameters
 
-		if (isset($this->id_sondage)) $this->id_sondage=trim($this->id_sondage);
-		if (isset($this->commentaires)) $this->commentaires=trim($this->commentaires);
-		if (isset($this->mail_admin)) $this->mail_admin=trim($this->mail_admin);
-		if (isset($this->nom_admin)) $this->nom_admin=trim($this->nom_admin);
-		if (isset($this->titre)) $this->titre=trim($this->titre);
-		if (isset($this->format)) $this->format=trim($this->format);
-		if (isset($this->mailsonde)) $this->mailsonde=trim($this->mailsonde);
-		if (isset($this->canedit)) $this->canedit=trim($this->canedit);
-
-
+		$this->id_sondage = trim($this->id_sondage);
+		$this->commentaires = trim($this->commentaires);
+		$this->mail_admin = trim($this->mail_admin);
+		$this->nom_admin = trim($this->nom_admin);
+		$this->titre = trim($this->titre);
+		$this->format = trim($this->format);
+		$this->mailsonde = ($this->mailsonde ? 1 : 0);
+		$this->canedit = ($this->canedit ? 1 : 0);
+		$this->allow_comments = ($this->allow_comments ? 1 : 0);
+		$this->allow_spy = ($this->allow_spy ? 1 : 0);
+		$this->origin = trim($this->origin);
+		$this->sujet = trim($this->sujet);
 
 		// Check parameters
 		// Put here code to add control on parameters values
@@ -114,21 +119,29 @@ class Opensurveysondage extends CommonObject
 		$sql.= "date_fin,";
 		$sql.= "format,";
 		$sql.= "mailsonde,";
-		$sql.= "canedit";
+		$sql.= "canedit,";
+		$sql.= "allow_comments,";
+		$sql.= "allow_spy,";
+		$sql.= "origin,";
+		$sql.= "sujet";
         $sql.= ") VALUES (";
 
-		$sql.= " ".(! isset($this->id_sondage)?'NULL':"'".$this->db->escape($this->id_sondage)."'").",";
-		$sql.= " ".(! isset($this->commentaires)?'NULL':"'".$this->db->escape($this->commentaires)."'").",";
-		$sql.= " ".(! isset($this->mail_admin)?'NULL':"'".$this->db->escape($this->mail_admin)."'").",";
-		$sql.= " ".(! isset($this->nom_admin)?'NULL':"'".$this->db->escape($this->nom_admin)."'").",";
-		$sql.= " ".(! isset($this->titre)?'NULL':"'".$this->db->escape($this->titre)."'").",";
-		$sql.= " ".(! isset($this->date_fin) || dol_strlen($this->date_fin)==0?'NULL':$this->db->idate($this->date_fin)).",";
-		$sql.= " ".(! isset($this->format)?'NULL':"'".$this->db->escape($this->format)."'").",";
-		$sql.= " ".(! isset($this->mailsonde)?'NULL':"'".$this->db->escape($this->mailsonde)."'").",";
-		$sql.= " ".(! isset($this->canedit)?'NULL':"'".$this->db->escape($this->canedit)."'")."";
+		$sql.= "'".$this->db->escape($this->id_sondage)."',";
+		$sql.= " ".(empty($this->commentaires)?'NULL':"'".$this->db->escape($this->commentaires)."'").",";
+		$sql.= " ".(empty($this->mail_admin)?'NULL':"'".$this->db->escape($this->mail_admin)."'").",";
+		$sql.= " '".$this->db->escape($this->nom_admin)."',";
+		$sql.= " '".$this->db->escape($this->titre)."',";
+		$sql.= " '".$this->db->idate($this->date_fin)."',";
+		$sql.= " '".$this->db->escape($this->format)."',";
+		$sql.= " ".$this->db->escape($this->mailsonde).",";
+		$sql.= " ".$this->db->escape($this->canedit).",";
+		$sql.= " ".$this->db->escape($this->allow_comments).",";
+		$sql.= " ".$this->db->escape($this->allow_spy).",";
+		$sql.= " '".$this->db->escape($this->origin)."',";
+		$sql.= " '".$this->db->escape($this->sujet)."'";
 		
 		$sql.= ")";
-
+		
 		$this->db->begin();
 
 	   	dol_syslog(get_class($this)."::create sql=".$sql, LOG_DEBUG);
@@ -137,8 +150,6 @@ class Opensurveysondage extends CommonObject
 
 		if (! $error)
         {
-            $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."opensurvey_sondage");
-
 			if (! $notrigger)
 			{
 	            // Uncomment this and change MYOBJECT to your own tag if you
diff --git a/htdocs/opensurvey/fonctions.php b/htdocs/opensurvey/fonctions.php
index 3be543a96fd8863445d4d668d2ccf0b742c81124..bbd2a4788175b611dc0b8bab6d6a4002e93afc63 100644
--- a/htdocs/opensurvey/fonctions.php
+++ b/htdocs/opensurvey/fonctions.php
@@ -230,6 +230,8 @@ function dol_survey_random($car)
 function ajouter_sondage($origin)
 {
 	global $db;
+	
+	require_once DOL_DOCUMENT_ROOT.'/opensurvey/class/opensurveysondage.class.php';
 
 	$sondage=dol_survey_random(16);
 
@@ -253,20 +255,27 @@ function ajouter_sondage($origin)
 	if (is_numeric($date_fin) === false) {
 		$date_fin = time()+15552000;
 	}
-	$canedit=empty($_SESSION['formatcanedit'])?'0':'1';
+	$canedit=empty($_SESSION['caneditsondage']) ? 0 : 1;
 	$allow_comments = empty($_SESSION['allow_comments']) ? 0 : 1;
 	$allow_spy = empty($_SESSION['allow_spy']) ? 0 : 1;
 	
 	// Insert survey
-	$sql = 'INSERT INTO '.MAIN_DB_PREFIX.'opensurvey_sondage';
-	$sql.= '(id_sondage, commentaires, mail_admin, nom_admin, titre, date_fin, format, mailsonde, canedit, allow_comments, allow_spy, origin, sujet)';
-	$sql.= " VALUES ('".$db->escape($sondage)."', '".$db->escape($_SESSION['commentaires'])."', '".$db->escape($_SESSION['adresse'])."', '".$db->escape($_SESSION['nom'])."',";
-	$sql.= " '".$db->escape($_SESSION['titre'])."', '".$db->idate($date_fin)."', '".$_SESSION['formatsondage']."', '".$db->escape($_SESSION['mailsonde'])."',";
-	$sql.= " '".$canedit."', '".$allow_comments."', '".$allow_spy."', '".$db->escape($origin)."',";
-	$sql.= " '".$db->escape($_SESSION['toutchoix'])."'";
-	$sql.= ")";
-	dol_syslog($sql);
-	$resql=$db->query($sql);
+	$opensurveysondage = new Opensurveysondage($db);
+	$opensurveysondage->id_sondage = $sondage;
+	$opensurveysondage->commentaires = $_SESSION['commentaires'];
+	$opensurveysondage->mail_admin = $_SESSION['adresse'];
+	$opensurveysondage->nom_admin = $_SESSION['nom'];
+	$opensurveysondage->titre = $_SESSION['titre'];
+	$opensurveysondage->date_fin = $date_fin;
+	$opensurveysondage->format = $_SESSION['formatsondage'];
+	$opensurveysondage->mailsonde = $_SESSION['mailsonde'];
+	$opensurveysondage->canedit = $canedit;
+	$opensurveysondage->allow_comments = $allow_comments;
+	$opensurveysondage->allow_spy = $allow_spy;
+	$opensurveysondage->origin = $origin;
+	$opensurveysondage->sujet = $_SESSION['toutchoix'];
+	
+	$opensurveysondage->create(null);
 
 	if ($origin == 'dolibarr') $urlback=dol_buildpath('/opensurvey/adminstuds_preview.php',1).'?id='.$sondage;
 	else
@@ -279,8 +288,6 @@ function ajouter_sondage($origin)
 		$url=$urlwithouturlroot.dol_buildpath('/opensurvey/public/studs.php',1).'?sondage='.$sondage;
 
 		$urlback=$url;
-
-		//var_dump($urlback);exit;
 	}
 
 	unset($_SESSION["titre"]);