diff --git a/src/competence.c b/src/competence.c
index 14d93658080051b5d22e8040b1ebbcbceefd92fb..6be30f55db177863422ebc39133d737a0bfd6f48 100644
--- a/src/competence.c
+++ b/src/competence.c
@@ -39,7 +39,7 @@ Competence* init_Competence(Competence *noeud)
     noeud->prix_competence = 0;
     noeud->frere = NULL;
     noeud->enfant = NULL;
-    noeud->effet = NULL;
+    noeud->effet = malloc(sizeof(Effet_Competence));
     noeud->connu = 0;
 
     return noeud;
@@ -67,12 +67,16 @@ int estVide(Competence *c)
 
 int set_comp_enfant(Competence *parent, Competence *nouvel_enfant)  /* Ne fonctionne pas */
 {
+
     if(estVide(parent))
     {
+        init_Competence(parent->enfant);
         parent->enfant = nouvel_enfant;
     }
     else
     {
+        init_Competence(parent->frere);
+        parent->frere = nouvel_enfant;
         /* Ne fonctionne pas */
         /*
         Competence *enfant_temp;
@@ -343,7 +347,7 @@ int Test_Competences()
     set_comp_enfant(Comp_Test_Parent, Comp_Test_Frere_Enfant); /* Insertion d'un deuxième enfant (qui doit devenir le frère du premier) */
 
     printf("\nL'enfant de %s est %s\n", Comp_Test_Parent->nomComp, Comp_Test_Parent->enfant->nomComp);
-    printf("L'autre enfant de %s est %s\n", Comp_Test_Parent->nomComp, Comp_Test_Parent->enfant->frere->nomComp);
+    printf("L'autre enfant de %s est %s\n", Comp_Test_Parent->nomComp, Comp_Test_Parent->frere->nomComp);
 
 
    return 0;