diff --git a/htdocs/contact.class.php b/htdocs/contact.class.php
index 81291db28cc1c39163c83917c0b639f3570e36cb..da9ed5edeef6d52c8f745134fdcb448afc0d4c23 100644
--- a/htdocs/contact.class.php
+++ b/htdocs/contact.class.php
@@ -307,16 +307,8 @@ class Contact
 	
 		if ($this->birthday>0)
 		{
-			if (eregi('\-',$this->birthday))
-			{
-				// Si date = chaine
-				$sql .= ", birthday='".$this->birthday."'";
-			}
-			else
-			{
-				// Si date = timestamp
-				$sql .= ", birthday=".$this->db->idate($this->birthday);
-			}
+			$birthday = (int) $this->birthday;
+			$sql .= ", birthday='".$birthday."'";
 		}
 		$sql .= " WHERE idp=$id";
 	
diff --git a/htdocs/contact/perso.php b/htdocs/contact/perso.php
index dbfc818f64c0c9ba7e5de9b8351375ed8072ce8e..7c06345b93406c67d1ce025799cd1b1ea1aa5406 100644
--- a/htdocs/contact/perso.php
+++ b/htdocs/contact/perso.php
@@ -75,14 +75,15 @@ if ($_POST["action"] == 'update')
 
     if ($_POST["birthdayyear"])
     {
-        if ($_POST["birthdayyear"]<=1970 && $_SERVER["WINDIR"])
-        {
-        // windows mktime does not support negative date timestamp so birthday is not supported for old persons
-        $contact->birthday = $_POST["birthdayyear"].'-'.$_POST["birthdaymonth"].'-'.$_POST["birthdayday"];
-        // array_push($error,"Windows ne sachant pas g�rer des dates avant 1970, les dates de naissance avant cette date ne seront pas sauvegard�es");
-        } else {
-            $contact->birthday     = mktime(0,0,0,$_POST["birthdaymonth"],$_POST["birthdayday"],$_POST["birthdayyear"]);
-        }
+		$birthday 	= (int) $_POST["birthdayday"];
+		$birthmonth = (int) $_POST["birthdaymonth"];
+		$birthyear 	= (int) $_POST["birthdayyear"];
+		if($birthmonth>=1 && $birthmonth<=12
+			&& $birthday>=1 && $birthday<=31
+			&& $birthyear>=1850 && $birthyear<=date('Y'))
+		{
+           	$contact->birthday     = $birthyear.$birthmonth.$birthday;
+		}
     }
 
     $contact->birthday_alert = $_POST["birthday_alert"];