Index: applications/editors/josm/plugins/HouseNumberTaggingTool/.classpath
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/.classpath	(revision 34068)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/.classpath	(revision 34069)
@@ -2,5 +2,7 @@
 <classpath>
 	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="test/unit"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/JOSM"/>
 	<classpathentry kind="output" path="bin"/>
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/.settings/org.eclipse.core.resources.prefs
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/.settings/org.eclipse.core.resources.prefs	(revision 34068)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/.settings/org.eclipse.core.resources.prefs	(revision 34069)
@@ -1,2 +1,3 @@
 eclipse.preferences.version=1
+encoding/test=UTF-8
 encoding/src=UTF-8
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/Dto.java
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/Dto.java	(revision 34068)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/Dto.java	(revision 34069)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.housenumbertool;
 
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/HouseNumberTaggingToolPlugin.java
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/HouseNumberTaggingToolPlugin.java	(revision 34068)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/HouseNumberTaggingToolPlugin.java	(revision 34069)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.housenumbertool;
 
@@ -10,5 +11,4 @@
  */
 public class HouseNumberTaggingToolPlugin extends Plugin {
-    private final LaunchAction action;
 
     /**
@@ -18,6 +18,6 @@
     public HouseNumberTaggingToolPlugin(PluginInformation info) {
         super(info);
-        action = new LaunchAction(getPluginDirs().getUserDataDirectory(false));
-        MainMenu.add(MainApplication.getMenu().dataMenu, action, false,0);
+        LaunchAction action = new LaunchAction(getPluginDirs().getUserDataDirectory(false));
+        MainMenu.add(MainApplication.getMenu().dataMenu, action, false, 0);
     }
 }
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/LaunchAction.java
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/LaunchAction.java	(revision 34068)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/LaunchAction.java	(revision 34069)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.housenumbertool;
 
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java	(revision 34068)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/src/org/openstreetmap/josm/plugins/housenumbertool/TagDialog.java	(revision 34069)
@@ -1,2 +1,3 @@
+// License: GPL. For details, see LICENSE file.
 package org.openstreetmap.josm.plugins.housenumbertool;
 
@@ -23,4 +24,6 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import javax.swing.ButtonGroup;
@@ -320,12 +323,7 @@
         housnumber.setPreferredSize(new Dimension(200, 24));
 
-        int number = 0;
-        try {
-            number = Integer.valueOf(dto.getHousenumber()) + dto.getHousenumberChangeValue();
-        } catch (NumberFormatException e)  {
-            // Do nothing
-        }
-        if (number > 0) {
-            housnumber.setText(String.valueOf(number));
+        String number = incrementHouseNumber(dto.getHousenumber(), dto.getHousenumberChangeValue());
+        if (number != null) {
+            housnumber.setText(number);
         }
 
@@ -358,4 +356,19 @@
 
         return editPanel;
+    }
+
+    static String incrementHouseNumber(String number, int increment) {
+        try {
+            Matcher m = Pattern.compile("([^\\pN]+)?(\\pN+)([^\\pN]+)?").matcher(number);
+            if (m.matches()) {
+                String prefix = m.group(1) != null ? m.group(1) : "";
+                int n = Integer.valueOf(m.group(2)) + increment;
+                String suffix = m.group(3) != null ? m.group(3) : "";
+                return prefix + n + suffix;
+            }
+        } catch (NumberFormatException e)  {
+            // Do nothing
+        }
+        return null;
     }
 
Index: applications/editors/josm/plugins/HouseNumberTaggingTool/test/unit/org/openstreetmap/josm/plugins/housenumbertool/TagDialogTest.java
===================================================================
--- applications/editors/josm/plugins/HouseNumberTaggingTool/test/unit/org/openstreetmap/josm/plugins/housenumbertool/TagDialogTest.java	(revision 34069)
+++ applications/editors/josm/plugins/HouseNumberTaggingTool/test/unit/org/openstreetmap/josm/plugins/housenumbertool/TagDialogTest.java	(revision 34069)
@@ -0,0 +1,25 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.plugins.housenumbertool;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+/**
+ * Unit tests of {@link TagDialog}.
+ */
+public class TagDialogTest {
+
+    /**
+     * Unit test of {@link TagDialog#incrementHouseNumber}
+     */
+    @Test
+    public void testIncrementHouseNumber() {
+        assertEquals("2", TagDialog.incrementHouseNumber("1", 1));
+        assertEquals("12", TagDialog.incrementHouseNumber("10", 2));
+        assertEquals("2A", TagDialog.incrementHouseNumber("1A", 1));
+        assertEquals("E2", TagDialog.incrementHouseNumber("E1", 1));
+        //assertEquals("۲", TagDialog.incrementHouseNumber("۱", 1)); // FIXME: how to increment persian numbers ?
+        assertEquals("2", TagDialog.incrementHouseNumber("۱", 1));
+    }
+}
