Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItem.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItem.java	(revision 6192)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItem.java	(revision 6198)
@@ -5,5 +5,7 @@
 import java.util.List;
 import java.util.Map;
+
 import javax.swing.JPanel;
+
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -30,6 +32,17 @@
     }
 
+    /**
+     * Called by {@link TaggingPreset#createPanel} during tagging preset panel creation.
+     * All components defining this tagging preset item must be added to given panel.
+     * @param p The panel where components must be added
+     * @param sel The related selected OSM primitives
+     * @return {@code true} if this item adds semantic tagging elements, {@code false} otherwise.
+     */
     abstract boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel);
 
+    /**
+     * Adds the new tags to apply to selected OSM primitives when the preset holding this item is applied.
+     * @param changedTags The list of changed tags to modify if needed
+     */
     abstract void addCommands(List<Tag> changedTags);
 
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 6192)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetItems.java	(revision 6198)
@@ -1,4 +1,7 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.tagging;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+import static org.openstreetmap.josm.tools.I18n.trc;
 
 import java.awt.Component;
@@ -34,9 +37,9 @@
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
+import javax.swing.JSeparator;
 import javax.swing.JToggleButton;
 import javax.swing.ListCellRenderer;
 import javax.swing.ListModel;
 
-import org.xml.sax.SAXException;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.search.SearchCompiler;
@@ -51,11 +54,9 @@
 import org.openstreetmap.josm.gui.widgets.JosmComboBox;
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
+import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.UrlLabel;
 import org.openstreetmap.josm.tools.Utils;
-import org.openstreetmap.josm.tools.GBC;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
-import static org.openstreetmap.josm.tools.I18n.trc;
+import org.xml.sax.SAXException;
 
 /**
@@ -444,4 +445,25 @@
     }
 
+    /**
+     * Class used to represent a {@link JSeparator} inside tagging preset window.
+     * @since 6198
+     */
+    public static class ItemSeparator extends TaggingPresetItem {
+
+        @Override
+        public boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
+            p.add(new JSeparator(), GBC.eol().fill(GBC.HORIZONTAL).insets(0, 5, 0, 5));
+            return false;
+        }
+
+        @Override
+        public void addCommands(List<Tag> changedTags) {
+        }
+
+        @Override
+        public String toString() {
+            return "ItemSeparator";
+        }
+    }
 
     public static abstract class KeyedItem extends TaggingPresetItem {
@@ -703,5 +725,5 @@
         boolean addToPanel(JPanel p, Collection<OsmPrimitive> sel) {
             Integer cols = new Integer(columns);
-            int rows = (int) Math.ceil((double)checks.size()/cols.doubleValue());
+            int rows = (int) Math.ceil(checks.size()/cols.doubleValue());
             JPanel panel = new JPanel(new GridLayout(rows, cols));
             
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetReader.java	(revision 6192)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetReader.java	(revision 6198)
@@ -1,4 +1,6 @@
 // License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.gui.tagging;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
 
 import java.io.BufferedReader;
@@ -15,5 +17,4 @@
 import javax.swing.JOptionPane;
 
-import org.xml.sax.SAXException;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.preferences.SourceEntry;
@@ -22,6 +23,5 @@
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.XmlObjectParser;
-
-import static org.openstreetmap.josm.tools.I18n.tr;
+import org.xml.sax.SAXException;
 
 /**
@@ -67,4 +67,5 @@
         parser.map("key", TaggingPresetItems.Key.class);
         parser.map("list_entry", TaggingPresetItems.PresetListEntry.class);
+        parser.map("item_separator", TaggingPresetItems.ItemSeparator.class);
         
         LinkedList<TaggingPreset> all = new LinkedList<TaggingPreset>();
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetSeparator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetSeparator.java	(revision 6192)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPresetSeparator.java	(revision 6198)
@@ -2,4 +2,8 @@
 package org.openstreetmap.josm.gui.tagging;
 
+/**
+ * Class used to represent a {@link javax.swing.JSeparator} inside tagging preset menu.
+ * @since 895
+ */
 public class TaggingPresetSeparator extends TaggingPreset {
     @Override
