Index: trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java	(revision 7750)
+++ trunk/src/org/openstreetmap/josm/gui/conflict/tags/MultiValueResolutionDecision.java	(revision 7751)
@@ -29,4 +29,8 @@
     /** the selected value if {@link #type} is {@link MultiValueDecisionType#KEEP_ONE} */
     private String value;
+
+    private static final String[] SUMMABLE_KEYS = new String[] {
+        "capacity(:.+)?", "step_count"
+    };
 
     /**
@@ -197,5 +201,13 @@
      */
     public boolean canSumAllNumeric() {
-        return "capacity".equals(getKey()) && canKeepAll();
+        if (!canKeepAll()) {
+            return false;
+        }
+        for (String key : SUMMABLE_KEYS) {
+            if (getKey().matches(key)) {
+                return true;
+            }
+        }
+        return false;
     }
 
@@ -225,14 +237,13 @@
      *
      */
-    public void applyTo(OsmPrimitive primitive) throws IllegalStateException{
+    public void applyTo(OsmPrimitive primitive) {
         if (primitive == null) return;
         if (!isDecided())
             throw new IllegalStateException(tr("Not decided yet."));
         String key = tags.getKeys().iterator().next();
-        String value = getChosenValue();
         if (type.equals(MultiValueDecisionType.KEEP_NONE)) {
             primitive.remove(key);
         } else {
-            primitive.put(key, value);
+            primitive.put(key, getChosenValue());
         }
     }
@@ -244,5 +255,5 @@
      * @throws IllegalStateException thrown if this resolution is not resolved yet
      */
-    public void applyTo(Collection<? extends OsmPrimitive> primitives) throws IllegalStateException {
+    public void applyTo(Collection<? extends OsmPrimitive> primitives) {
         if (primitives == null) return;
         for (OsmPrimitive primitive: primitives) {
@@ -262,5 +273,5 @@
      * @throws IllegalStateException thrown if this resolution is not resolved yet
      */
-    public Command buildChangeCommand(OsmPrimitive primitive) throws IllegalArgumentException, IllegalStateException {
+    public Command buildChangeCommand(OsmPrimitive primitive) {
         CheckParameterUtil.ensureParameterNotNull(primitive, "primitive");
         if (!isDecided())
