diff -urN cahier-de-prepa4.0.4/cdt.php cahier-de-prepa4.0.5/cdt.php
--- cahier-de-prepa4.0.4/cdt.php	2014-09-19 17:03:41.226750023 +0200
+++ cahier-de-prepa4.0.5/cdt.php	2014-09-21 00:04:50.774323462 +0200
@@ -31,6 +31,16 @@
     include('login.php');
   }
 
+  // $message ne peut être généré ici que par login.php si l'utilisateur s'est
+  // connecté avec un mot de passe temporaire (admin/fonctions.php déjà inclus)
+  if ( !isset($message) )  {
+    // Fonction d'affichage des dates
+    function format_date($date)  {
+      $semaine = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
+      $mois = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
+      return $semaine[substr($date,0,1)].' '.substr($date,7).' '.$mois[intval(substr($date,5,2))].' '.substr($date,1,4);
+    }
+  }
 }
 // Si aucune matière présentant son cahier de texte n'est enregistrée
 else  {
@@ -38,15 +48,6 @@
   exit('Cette page ne contient aucune information.');
 }
 
-// Fonction d'affichage des dates
-function format_date($date)  {
-  $semaine = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
-  $mois = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
-  return $semaine[substr($date,0,1)].' '.substr($date,7).' '.$mois[intval(substr($date,5,2))].' '.substr($date,1,4);
-}
-// Remarque : génère une erreur de redéfinition si on vient de se connecter
-// (->login.php) avec un mot de passe temporaire (->admin/fonctions.php)
-
 // Récupération de l'ensemble des semaines
 $resultat = $mysqli->query("SELECT id, DATE_FORMAT(debut,'%w%Y%m%e') AS debut, vacances FROM semaines");
 $select_semaines = '';
diff -urN cahier-de-prepa4.0.4/CHANGELOG.php cahier-de-prepa4.0.5/CHANGELOG.php
--- cahier-de-prepa4.0.4/CHANGELOG.php	2014-09-20 15:40:15.013354634 +0200
+++ cahier-de-prepa4.0.5/CHANGELOG.php	2014-10-18 21:26:49.023434743 +0200
@@ -1,4 +1,4 @@
-Version actuelle : 4.0.4 (20/09/14)
+Version actuelle : 4.0.5 (18/10/14)
 ===================
 Changements :
 1.0   31/08/11 Première version
@@ -130,6 +130,7 @@
 4.0.2 02/09/14 Correction de bug (erreur de syntaxe)
 4.0.3 02/09/14 Correction de bug (réinitialisation des mots de passe)
 4.0.4 20/09/14 Correction de bugs multiples (merci O. Bouverot, E. Saudrais)
+4.0.5 18/10/14 Correction de bug (redéfinition occasionnelle d'une fonction)
 ===================
 
 Todo :
diff -urN cahier-de-prepa4.0.4/colles.php cahier-de-prepa4.0.5/colles.php
--- cahier-de-prepa4.0.4/colles.php	2014-08-26 22:49:10.425057904 +0200
+++ cahier-de-prepa4.0.5/colles.php	2014-09-21 00:13:38.042340335 +0200
@@ -31,6 +31,16 @@
     include('login.php');
   }
 
+  // $message ne peut être généré ici que par login.php si l'utilisateur s'est
+  // connecté avec un mot de passe temporaire (admin/fonctions.php déjà inclus)
+  if ( !isset($message) )  {
+    // Fonction d'affichage des dates
+    function format_date($date)  {
+      $semaine = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
+      $mois = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
+      return $semaine[substr($date,0,1)].' '.substr($date,7).' '.$mois[intval(substr($date,5,2))].' '.substr($date,1,4);
+    }
+  }
 }
 // Si aucune matière présentant son programme de colles n'est enregistrée
 else  {
@@ -38,13 +48,6 @@
   exit('Cette page ne contient aucune information.');
 }
 
-// Fonction d'affichage des semaines
-function format_date($date)  {
-  $semaine = array('dimanche','lundi','mardi','mercredi','jeudi','vendredi','samedi');
-  $mois = array('','janvier','février','mars','avril','mai','juin','juillet','août','septembre','octobre','novembre','décembre');
-  return $semaine[substr($date,0,1)].' '.substr($date,7).' '.$mois[intval(substr($date,5,2))].' '.substr($date,1,4);
-}
-
 // Récupération de l'ensemble des semaines
 $resultat = $mysqli->query("SELECT s.id AS sid, DATE_FORMAT(s.debut,'%w%Y%m%e') AS d, s.colle, s.vacances,
                             IF(c.id IS NULL OR c.cache, ' disabled','') AS disabled
diff -urN cahier-de-prepa4.0.4/login.php cahier-de-prepa4.0.5/login.php
--- cahier-de-prepa4.0.4/login.php	2014-08-21 17:23:32.338608629 +0200
+++ cahier-de-prepa4.0.5/login.php	2014-10-18 21:16:43.811415376 +0200
@@ -41,6 +41,7 @@
         requete('utilisateurs',"UPDATE utilisateurs SET mdp='pas de mot de passe', genre=MOD(genre,5) WHERE id = ${r['id']}");
         $mysqli->close();
         $mysqli = mysql_lecture();
+        $message = 'Votre mot de passe était temporaire et vient d\'être réinitialisé.<br>Vous devez absolument le redéfinir maintenant, dans vos <a href="prefs">Préférences</a>.';
       }
       // Retour au script appelant
       unset($_REQUEST['motdepasse']);
diff -urN cahier-de-prepa4.0.4/prefs.php cahier-de-prepa4.0.5/prefs.php
--- cahier-de-prepa4.0.4/prefs.php	2014-08-25 12:23:24.341091614 +0200
+++ cahier-de-prepa4.0.5/prefs.php	2014-09-21 00:09:06.238331637 +0200
@@ -101,9 +101,12 @@
 if ( $u['mdp'] == 'pas de mot de passe' )  {
   $message = 'IMPORTANT : votre mot de passe a été réinitialisé. Vous devez absolument le redéfinir ci-dessous.';
   $mdp0 = '    <input type="hidden" name="mdp0" value="réinitialisé">';
+  $mdp_message = '';
 }
-else
+else  {
   $mdp0 = '    <p class="ligne"><label for="mdp0">Mot de passe actuel&nbsp;: </label><input type="password" id="mdp0" name="mdp0" value=""></p>';
+  $mdp_message = '    <p>Le mot de passe actuel doit être obligatoirement fourni.</p>';
+}
 
 // Haut de page, menu et message
 include('haut.php');
@@ -133,7 +136,7 @@
     <p class="ligne"><label for="mdp2">Confirmation&nbsp;: </label><input type="password" id="mdp2" name="mdp2" value=""></p>
     <p class="ligne"><label for="timeout">Temps de déconnexion&nbsp;: </label><input type="text" id="timeout" name="timeout" value="${u['timeout']}" size="5"></p>
   </form>
-  <p>Le mot de passe actuel doit être obligatoirement fourni.</p>
+$mdp_message
   </div>
 
 
