Index: src/org/openstreetmap/josm/data/validation/tests/SharpAngles.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/SharpAngles.java	(revision 15407)
+++ src/org/openstreetmap/josm/data/validation/tests/SharpAngles.java	(working copy)
@@ -15,6 +15,7 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.WaySegment;
+import org.openstreetmap.josm.data.preferences.sources.ValidatorPrefHelper;
 import org.openstreetmap.josm.data.validation.Severity;
 import org.openstreetmap.josm.data.validation.Test;
 import org.openstreetmap.josm.data.validation.TestError;
@@ -108,11 +109,15 @@
     }
 
     private void createNearlyOverlappingError(double angle, Way way, OsmPrimitive primitive) {
-        TestError.Builder testError = TestError.builder(this, getSeverity(angle), SHARP_ANGLES)
-                .primitives(way)
-                .highlight(primitive)
-                .message(tr("Sharp angle"));
-        errors.add(testError.build());
+        Severity severity = getSeverity(angle);
+        if ((ValidatorPrefHelper.PREF_OTHER.get() || ValidatorPrefHelper.PREF_OTHER_UPLOAD.get()) || !severity.equals(Severity.OTHER)) {
+            int addCode = severity.equals(Severity.OTHER) ? 1 : 0;
+            TestError.Builder testError = TestError.builder(this, severity, SHARP_ANGLES + addCode)
+                    .primitives(way)
+                    .highlight(primitive)
+                    .message(tr("Sharp angle"));
+            errors.add(testError.build());
+        }
     }
 
     private Severity getSeverity(double angle) {
