diff --git a/ALTree/Nanova.pm b/ALTree/Nanova.pm
index 11502b6f52868d000b2091a2eaaa6fbd04033b78..602aa4d2c9b2cc2d66bf8e7b4af401afa49789fe 100644
--- a/ALTree/Nanova.pm
+++ b/ALTree/Nanova.pm
@@ -70,13 +70,13 @@ sub FillTableaux
     my $nb_term = shift;
 
     if ($present_node->NbChildren()==0)  {
-	$presentNode->GetQuantiList();
+	$present_node->GetQuantiList();
 	push @{$values}, @{$present_node->GetQuantiList()};
 	push @{$groups}, $present_node->NbQuanti(); 
 	$nb_term++;
     } else {
 	for my $child ($present_node->GetChildrenList()) {  
-	    FillTableaux($child, $value, $groups, $nb_term);
+	    FillTableaux($child, $values, $groups, $nb_term);
 	}
     }
 
diff --git a/altree b/altree
index 06ae6bf5e395ed35a310045b4905751ac0f0f5d0..09cd18ac175371a49c7c7f0448779808cf181ebb 100755
--- a/altree
+++ b/altree
@@ -1039,7 +1039,7 @@ sub SwitchRoot {
 }
 
 ################################################################
-###################### ASSOCIATION TEST ########################
+#################### TRAITE PLS FICHIERS #######################
 ################################################################
 
 sub TraiteSeveralFiles
@@ -1058,7 +1058,7 @@ sub TraiteSeveralFiles
 	    $pmin_min = $res_files->[$i]->{"pmin"};
 	}
     }
-    print "La pmin minimale est $pmin_min\n";
+    print "La pmin minimale est $pmin_min, la taille de la distrib pmin est ", scalar(@distrib), "\n";
     
    # sort {$a <=> $b}  @distrib; # trie du plus petit au plus grand
     my $compte=0;
@@ -1516,16 +1516,18 @@ sub main
 		my $racine=$tree->GetRoot();
 		my @children=$racine->GetChildrenList();
 		
-		{
-		    my $mat;
-		    print "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n";
-		    $mat=ALTree::Nanova::Tree2mat($tree->GetRoot());
-		    ALTree::Nanova::WriteMat($mat);
-		    my $values = [];
-		    my $groups = [];
-		    my $nb_term=0;
-		    FillTableaux($tree->GetRoot(), $values, $groups, $nb_term);
-		}
+
+# EN DEVELOPPEMENT: NANOVA
+#		{
+#		    my $mat;
+#		    print "TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n";
+#		    $mat=ALTree::Nanova::Tree2mat($tree->GetRoot());
+#		    ALTree::Nanova::WriteMat($mat);
+#		    my $values = [];
+#		    my $groups = [];
+#		    my $nb_term=0;
+#		    FillTableaux($tree->GetRoot(), $values, $groups, $nb_term);
+#		}
 
 		$option_require->("permutations", 
 				  "The number of permutations used to calculate".
@@ -1596,65 +1598,72 @@ sub main
 		    }
 		}
 	    } 
-	}
-	if ($nb_files>1) {
-	    my $p_finale = TraiteSeveralFiles(\@res_files, $nb_files);
-	    print "\n############################################\n";
-	    print "p_value for the $nb_files files = $p_finale\n";
-	}
+	    print "tab_trees @trees\n";
+	
+	    
 	    
 	###########################################################
 	# Let's go. Et pour la localisation
 	###########################################################
 	
-	if ($s_loc==1) {
-	    #$option_require->("splitmode");
-	    #my($splitmode)=$option_value->("splitmode");
-	    print "Localisation method using S-character\n";
-	    $option_require->("s-site-number");
-	    my($s_site_nb)=$option_value->("s-site-number");
-	    $option_require->("s-site-characters");
-	    my($s_char_state)=$option_value->("s-site-characters");
-	    $option_require->("co-evo");
-	    my($co_evo_type)=$option_value->("co-evo");
+	    print "tabtrees @trees\n";
+	    if ($s_loc==1) {
+		#$option_require->("splitmode");
+		#my($splitmode)=$option_value->("splitmode");
+		print "Localisation method using S-character\n";
+		$option_require->("s-site-number");
+		my($s_site_nb)=$option_value->("s-site-number");
+		$option_require->("s-site-characters");
+		my($s_char_state)=$option_value->("s-site-characters");
+		$option_require->("co-evo");
+		my($co_evo_type)=$option_value->("co-evo");
 #	print "co_evo_type=$co_evo_type\n";
-	    
-#DEBUG	print "s_char_state=$s_char_state\n";
-	    if (not ($s_char_state =~ 
-		     m/([A-Za-z0-9]+)\s*[-=_]*[>]\s*([A-Za-z0-9]+)/)) {
-		erreur("Invalid character change for character".
-		       " S. It should be Anc -> Der\n", 0);
-	    }
-	    my($s_anc)=$1;
-	    my($s_der)=$2;
-	    my($s_state)= ALTree::Sens->New($s_anc." --> ".$s_der);
-	    my($foret)=ALTree::Foret->New();
-	    
-	    
-	    #$Data::Dumper::Indent = 0;
-	    for my $file_tree (@trees) {
-		my $tree=$file_tree->{"tree"};
-		
-		my ($b_t)=$tree->GetNbBrNonNulle();
 		
-		my $site=$tree->GetSite($s_site_nb);
-		if (not defined($site)) {
-		    erreur("Invalid value ($s_site_nb) for".
-			   " --s-site-number\n", 0);
+#DEBUG	print "s_char_state=$s_char_state\n";
+		if (not ($s_char_state =~ 
+			 m/([A-Za-z0-9]+)\s*[-=_]*[>]\s*([A-Za-z0-9]+)/)) {
+		    erreur("Invalid character change for character".
+			   " S. It should be Anc -> Der\n", 0);
 		}
+		my($s_anc)=$1;
+		my($s_der)=$2;
+		my($s_state)= ALTree::Sens->New($s_anc." --> ".$s_der);
+		my($foret)=ALTree::Foret->New();
 		
-		my($s_t, $s_t_rev)=CalculateRit($tree, $s_site_nb, $s_state, 
-						$co_evo_type); 
-		CalculateEit($tree, $s_site_nb, $s_t, $s_t_rev, $b_t);
-		$foret->AddTree($tree);
+		#$Data::Dumper::Indent = 0;
+		for my $file_tree (@trees) {
+		    my $tree=$file_tree->{"tree"};
+		    
+		    my ($b_t)=$tree->GetNbBrNonNulle();
+		    
+		    my $site=$tree->GetSite($s_site_nb);
+		    if (not defined($site)) {
+			erreur("Invalid value ($s_site_nb) for".
+			       " --s-site-number\n", 0);
+		    }
+		    
+		    print "TREE1, $tree\n";
+		    my($s_t, $s_t_rev)=CalculateRit($tree, $s_site_nb, $s_state, 
+						    $co_evo_type); 
+		    print "TREE2, $tree\n";
+		    CalculateEit($tree, $s_site_nb, $s_t, $s_t_rev, $b_t);
+		    print "TREE3, $tree\n";
+		    $foret->AddTree($tree);
+		    print "TREE4, $tree\n";
+		}
+		$foret->CalculVi();
+		#PrintAllVi($foret, $s_site_nb);# Non triƩ
+		#PrintViMax($foret, $s_site_nb); # Affiche la liste en choisissant
+		#pour chaque sit, juste le meilleur sens
+		print "\n";
+		print "Results:\n";
+		PrintViMaxSens($foret, $s_site_nb);
 	    }
-	    $foret->CalculVi();
-	    #PrintAllVi($foret, $s_site_nb);# Non triƩ
-	    #PrintViMax($foret, $s_site_nb); # Affiche la liste en choisissant
-	    #pour chaque sit, juste le meilleur sens
-	    print "\n";
-	    print "Results:\n";
-	    PrintViMaxSens($foret, $s_site_nb);
+	}
+	if ($nb_files>1) {
+	    my $p_finale = TraiteSeveralFiles(\@res_files, $nb_files);
+	    print "\n############################################\n";
+	    print "p_value for the $nb_files files = $p_finale\n";
 	}
     }
 }
diff --git a/altree-add-S b/altree-add-S
index e841145b1b8634a04762343f352b9f4ffeca8745..b450fa08bcaeb5993d1235269e4c8c3aaa3aeebc 100755
--- a/altree-add-S
+++ b/altree-add-S
@@ -41,9 +41,9 @@ sub ReadCorrespond
 	if ($ligne =~ /^$/) {
 	    next;
 	}
-	
-	###### Qualitative data ######
-	if ($data_qual eq "qualitative") {
+
+	####### Qualitative data ######
+	if ($data_qual eq "quali") {
 	    @tableau=split(/\s+/, $ligne);
 	    if ($#tableau != 2) {
 		die "error in $name_correspond: not 3 columns at line '$ligne'\n";
@@ -54,7 +54,8 @@ sub ReadCorrespond
 		    die "You have probably exchanged the order of cases and controls in file $name_correspond. It should be: haplo_name m_case_number c_control_number\n";
 		}
 		$correspondance{$tableau[0]}->{"case"}=$tableau[1]+0;
-		$correspondance{$tableau[0]}->{"control"}=$tableau[2]+0;	
+		$correspondance{$tableau[0]}->{"control"}=$tableau[2]+0;
+		
 	    }
 	} else {
 	    ##### Quantitative data #######
@@ -244,7 +245,7 @@ sub travail
 		#	print "$nom\n";
 
 		###### QUALITATIVE ######
-		if ($data_qual eq "qualitative") {
+		if ($data_qual eq "quali") {
 		    if (not exists ($correspondance->{$nom})){
 			print STDERR "$nom is not found in the file $name_correspond. Assuming it is the outgroup.\nThe number of cases and controls affected to this sequence is set to 0\n";
 			$correspondance->{$nom}->{"case"}=0;