Index: test/unit/org/openstreetmap/josm/TestUtils.java
===================================================================
--- test/unit/org/openstreetmap/josm/TestUtils.java	(revision 7796)
+++ test/unit/org/openstreetmap/josm/TestUtils.java	(working copy)
@@ -20,6 +20,19 @@
 public class TestUtils {
 
     /**
+     * Returns the path to images root directory.
+     * @return path to images root directory
+     */
+    public static String getImagesRoot() {
+        String imagesRoot = System.getProperty("josm.images");
+        if (imagesRoot == null || imagesRoot.isEmpty()) {
+            imagesRoot = "images";
+            System.out.println("System property josm.images is not set, using '" + imagesRoot + "'");
+        }
+        return imagesRoot.endsWith("/") ? imagesRoot : imagesRoot + "/";
+    }
+
+    /**
      * Returns the path to test data root directory.
      * @return path to test data root directory
      */
Index: test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java	(revision 7796)
+++ test/unit/org/openstreetmap/josm/tools/ImageProviderTest.java	(working copy)
@@ -5,10 +5,23 @@
 import static org.junit.Assert.assertThat;
 
 import java.awt.Transparency;
+import java.awt.event.ActionEvent;
 import java.io.File;
 import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.FileVisitor;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.regex.Pattern;
+
+import javax.swing.AbstractAction;
 
+import org.junit.BeforeClass;
 import org.junit.Test;
+import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.TestUtils;
 
 /**
@@ -17,6 +30,14 @@
 public class ImageProviderTest {
 
     /**
+     * Setup test.
+     */
+    @BeforeClass
+    public static void setUp() {
+        JOSMFixture.createUnitTestFixture().init();
+    }
+
+    /**
      * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/9984">#9984</a>
      * @throws IOException if an error occurs during reading
      */
@@ -38,4 +59,65 @@
         File file = new File(TestUtils.getRegressionDataFile(10030, "tile.jpg"));
         ImageProvider.read(file, true, true);
     }
+
+    /**
+     * Non-regression test for ticket <a href="https://josm.openstreetmap.de/ticket/10836">#10836</a>
+     * @throws IOException if an error occurs during reading
+     */
+    @Test
+    public void testTicket10836() throws IOException {
+        final Path rootDir = Paths.get(TestUtils.getImagesRoot());
+        // Search for all SVG files
+        Files.walkFileTree(rootDir, new FileVisitor<Path>() {
+            private final Pattern pattern = Pattern.compile(".*\\.svg");
+
+            @Override
+            public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
+                String path = file.toString();
+                if (pattern.matcher(path).matches()) {
+                    Main.info("Decoding SVG file: "+path);
+                    // Validate SVG file in background, as done in TaggingPreset
+                    new ImageProvider(path.replace(rootDir+File.separator, "")).getInBackground(
+                            new ImageProvider.ImageResourceCallback() {
+                        @Override
+                        public void finished(ImageResource result) {
+                            result.getImageIcon(new AbstractAction() {
+                                @Override
+                                public void actionPerformed(ActionEvent e) {
+                                    // Do nothing
+                                }
+                            });
+                        }
+                    });
+                }
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
+                Main.error(exc);
+                if (pattern.matcher(file.toString()).matches()) {
+                    // If an SVG file has failed, make the test fail
+                    throw exc;
+                }
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
+                if (exc != null) {
+                    Main.error(exc);
+                    if (dir.equals(rootDir)) {
+                        // If the root directory has failed, make the test fail
+                        throw exc;
+                    }
+                }
+                return FileVisitResult.CONTINUE;
+            }});
+    }
 }
