diff --git a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java
index 829c68015569a73cdf8a99e0480c31dae3804211..244cc13a0f80e94009eb5a1de2a7c5b35914e4b8 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/NetDbRenderer.java
@@ -11,12 +11,14 @@ package net.i2p.router.web;
 import java.io.IOException;
 import java.io.Writer;
 import java.math.BigInteger;         // debug
+import java.text.Collator;
 import java.text.DecimalFormat;      // debug
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.Set;
 import java.util.TreeSet;
 
@@ -311,11 +313,18 @@ public class NetDbRenderer {
         out.flush();
     }
     
-    /** sort by translated country name */
-    private class CountryComparator implements Comparator {
-         public int compare(Object l, Object r) {
-             return _(_context.commSystem().getCountryName((String)l))
-                    .compareTo(_(_context.commSystem().getCountryName((String)r)));
+    /** sort by translated country name using rules for the current language setting */
+    private class CountryComparator implements Comparator<String> {
+         Collator coll;
+
+         public CountryComparator() {
+             super();
+             coll = Collator.getInstance(new Locale(Messages.getLanguage(_context)));
+         }
+
+         public int compare(String l, String r) {
+             return coll.compare(_(_context.commSystem().getCountryName(l)),
+                                 _(_context.commSystem().getCountryName(r)));
         }
     }