Index: /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/dao/CategoryDao.java
===================================================================
--- /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/dao/CategoryDao.java	(revision 6961)
+++ /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/dao/CategoryDao.java	(revision 6962)
@@ -97,6 +97,11 @@
     public boolean creer(Category category) {
 	try {
-	    return Outil.checkOk(Main.sessionManager.executerReturnDocument(MethodsEnum.AJOUTER_CATEGORIE.getLabel(),
-		    "name", category.getNom(), "parent", String.valueOf(category.getParentDirect())));
+	    if (category.getParentDirect() != null) {
+		return Outil.checkOk(Main.sessionManager.executerReturnDocument(MethodsEnum.AJOUTER_CATEGORIE
+			.getLabel(), "name", category.getNom(), "parent", String.valueOf(category.getParentDirect())));
+	    } else {
+		return Outil.checkOk(Main.sessionManager.executerReturnDocument(MethodsEnum.AJOUTER_CATEGORIE
+			.getLabel(), "name", category.getNom()));
+	    }
 	} catch (IOException e) {
 	    LOG.error(Outil.getStackTrace(e));
Index: /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/om/Category.java
===================================================================
--- /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/om/Category.java	(revision 6961)
+++ /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/om/Category.java	(revision 6962)
@@ -63,5 +63,7 @@
 	idCategoriesMeres = new ArrayList<Integer>();
 	for (String cat : catMeres.split(",")) {
-	    idCategoriesMeres.add(Integer.valueOf(cat));
+	    if (!cat.equals("")) {
+		idCategoriesMeres.add(Integer.valueOf(cat));
+	    }
 	}
 	categoriesFilles = new ArrayList<Category>();
Index: /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/service/CategoryService.java
===================================================================
--- /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/service/CategoryService.java	(revision 6961)
+++ /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/service/CategoryService.java	(revision 6962)
@@ -113,3 +113,15 @@
 	return CategoryDao.getInstance().creer(category);
     }
+
+    /**
+     * Création d'une catégorie
+     * @param nom nom de la catégorie
+     * @param parent catégorie parent
+     * @return true si la catégorie a bien été créée
+     */
+    public boolean creer(String nom) {
+	Category category = new Category();
+	category.setNom(nom);
+	return CategoryDao.getInstance().creer(category);
+    }
 }
Index: /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CategoriesTree.java
===================================================================
--- /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CategoriesTree.java	(revision 6961)
+++ /extensions/jiwigo/trunk/src/main/java/fr/mael/jiwigo/ui/mainframe/CategoriesTree.java	(revision 6962)
@@ -189,16 +189,19 @@
 	tree.setSelectionRow(selRow);
 	//end
-	if (selRow != -1) {
-	    if (e.getButton() == 3) {
-		JPopupMenu popup = new JPopupMenu();
-		menuAjouter = new JMenuItem(Messages.getMessage("categories_add"));
-		menuAjouter.addActionListener(this);
-		popup.add(menuAjouter);
-		menuActualiser = new JMenuItem(Messages.getMessage("categories_update"));
-		menuActualiser.addActionListener(this);
-		popup.add(menuActualiser);
-		popup.show(tree, e.getX(), e.getY());
+
+	if (e.getButton() == 3) {
+	    JPopupMenu popup = new JPopupMenu();
+	    menuAjouter = new JMenuItem(Messages.getMessage("categories_add"));
+	    menuAjouter.addActionListener(this);
+	    popup.add(menuAjouter);
+	    menuActualiser = new JMenuItem(Messages.getMessage("categories_update"));
+	    menuActualiser.addActionListener(this);
+	    popup.add(menuActualiser);
+	    popup.show(tree, e.getX(), e.getY());
+	    if (selRow != -1) {
 		DefaultMutableTreeNode node = (DefaultMutableTreeNode) (selPath.getLastPathComponent());
 		this.selectedCategory = (Category) node.getUserObject();
+	    } else {
+		this.selectedCategory = null;
 	    }
 	}
@@ -217,11 +220,24 @@
 	    String nomcategorie = JOptionPane.showInputDialog(null, Messages.getMessage("categories_enterName"),
 		    Messages.getMessage("categories_add"), JOptionPane.INFORMATION_MESSAGE);
+	    //if the name of the category is not empty
 	    if (!(nomcategorie == null) && !nomcategorie.equals("")) {
-		if (CategoryService.getInstance().creer(nomcategorie, selectedCategory.getIdentifiant())) {
-		    setUpUi();
+		//if there is a parent category
+		if (selectedCategory != null) {
+		    //try to create a category
+		    if (CategoryService.getInstance().creer(nomcategorie, selectedCategory.getIdentifiant())) {
+			setUpUi();
+		    } else {
+			JOptionPane.showMessageDialog(null, Messages.getMessage("categoryCreationError"), Messages
+				.getMessage("error"), JOptionPane.ERROR_MESSAGE);
+
+		    }
 		} else {
-		    JOptionPane.showMessageDialog(null, Messages.getMessage("categoryCreationError"), Messages
-			    .getMessage("error"), JOptionPane.ERROR_MESSAGE);
-
+		    if (CategoryService.getInstance().creer(nomcategorie)) {
+			setUpUi();
+		    } else {
+			JOptionPane.showMessageDialog(null, Messages.getMessage("categoryCreationError"), Messages
+				.getMessage("error"), JOptionPane.ERROR_MESSAGE);
+
+		    }
 		}
 	    }
Index: /extensions/jiwigo/trunk/src/main/resources/log4j.xml
===================================================================
--- /extensions/jiwigo/trunk/src/main/resources/log4j.xml	(revision 6961)
+++ /extensions/jiwigo/trunk/src/main/resources/log4j.xml	(revision 6962)
@@ -23,5 +23,5 @@
 	<!-- Déclaration loggers -->
 	<logger name="fr.mael.jiwigo" additivity="false">
-		<level value="DEBUG" />
+		<level value="INFO" />
 		<appender-ref ref="console" />
 		<appender-ref ref="fichier" />
