Index: trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 2192)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/PropertiesDialog.java	(revision 2193)
@@ -527,6 +527,8 @@
         // combine both tables and wrap them in a scrollPane
         JPanel bothTables = new JPanel();
+        boolean top = Main.pref.getBoolean("properties.presets.top", true);
         bothTables.setLayout(new GridBagLayout());
-        bothTables.add(presets, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 2, 5, 2));
+        if(top)
+            bothTables.add(presets, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 2, 5, 2));
         bothTables.add(selectSth, GBC.eol().fill().insets(10, 10, 10, 10));
         bothTables.add(propertyTable.getTableHeader(), GBC.eol().fill(GBC.HORIZONTAL));
@@ -534,4 +536,6 @@
         bothTables.add(membershipTable.getTableHeader(), GBC.eol().fill(GBC.HORIZONTAL));
         bothTables.add(membershipTable, GBC.eol().fill(GBC.BOTH));
+        if(!top)
+            bothTables.add(presets, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 2, 5, 2));
 
         DblClickWatch dblClickWatch = new DblClickWatch();
@@ -644,8 +648,8 @@
 
         for(TaggingPreset t : TaggingPresetPreference.taggingPresets) {
-            if(t.types == null || !((relations > 0 && !t.types.contains("relation")) &&
+            if((t.types == null || !((relations > 0 && !t.types.contains("relation")) &&
                     (nodes > 0 && !t.types.contains("node")) &&
                     (ways+closedways > 0 && !t.types.contains("way")) &&
-                    (closedways > 0 && !t.types.contains("closedway"))))
+                    (closedways > 0 && !t.types.contains("closedway")))) && t.isShowable())
             {
                 int found = 0;
Index: trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 2192)
+++ trunk/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java	(revision 2193)
@@ -678,4 +678,14 @@
     }
 
+    public boolean isShowable()
+    {
+        for(Item i : data)
+        {
+            if(!(i instanceof Optional || i instanceof Space || i instanceof Key))
+                return true;
+        }
+        return false;
+    }
+
     public void actionPerformed(ActionEvent e) {
         if (Main.main == null) return;
