diff --git a/router/java/src/net/i2p/router/transport/GeoIP.java b/router/java/src/net/i2p/router/transport/GeoIP.java
index 23a857a340a930b0d422834851cf207f446be49e..8265b5b9c610e3759f649709024f2801f835308e 100644
--- a/router/java/src/net/i2p/router/transport/GeoIP.java
+++ b/router/java/src/net/i2p/router/transport/GeoIP.java
@@ -208,7 +208,10 @@ public class GeoIP {
                                 // returns upper case or "--"
                                 String uc = ls.getCountryV6(ipv6).getCode();
                                 if (!uc.equals(UNKNOWN_COUNTRY_CODE)) {
-                                    String cached = _codeCache.get(uc.toLowerCase(Locale.US));
+                                    String lc = uc.toLowerCase(Locale.US);
+                                    String cached = _codeCache.get(lc);
+                                    if (cached == null)
+                                        cached = lc;
                                     _IPToCountry.put(search[i], cached);
                                 } else {
                                     _notFound.add(search[i]);