diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java
index 621e11a294973b2f865f487f92fd5fd5adada674..7c006207558158459b6e03ee312204a91a47c005 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnel.java
@@ -35,7 +35,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -1605,7 +1604,7 @@ public class I2PTunnel extends EventDispatcherImpl implements Logging {
     private void runRun(String args[], Logging l) {
         if (args.length == 1) {
             try {
-                BufferedReader br = new BufferedReader(new FileReader(args[0]));
+                BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(args[0]), "UTF-8"));
                 String line;
                 while ((line = br.readLine()) != null) {
                     runCommand(line, l);
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java
index 73c1dd74af2702a29de828e55f95de65d4292a38..dd59042d8f1a1db3bd8e7dfa12b9a71fb20a14ae 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2Ping.java
@@ -4,8 +4,9 @@
 package net.i2p.i2ptunnel;
 
 import java.io.BufferedReader;
-import java.io.FileReader;
+import java.io.FileInputStream;
 import java.io.IOException;
+import java.io.InputStreamReader;
 import java.net.Socket;
 import java.util.ArrayList;
 import java.util.List;
@@ -157,7 +158,7 @@ public class I2Ping extends I2PTunnelClientBase {
       }
 
       if (hostListFile != null) {
-            BufferedReader br = new BufferedReader(new FileReader(hostListFile));
+            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(hostListFile), "UTF-8"));
             String line;
             List<PingHandler> pingHandlers = new ArrayList<PingHandler>();
             int i = 0;
diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java
index 17cb4e6ac5a65d5fd85b72a8bb3e96cbe48b262f..c0839e503ac814068dbb2bc87cffc92a795bc023 100644
--- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java
+++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/ui/TunnelConfig.java
@@ -319,7 +319,7 @@ public class TunnelConfig {
         if (val)
             _booleanOptions.add(I2PTunnelHTTPClient.PROP_ACCEPT);
         else
-            _booleanOptions.add(I2PTunnelHTTPClient.PROP_ACCEPT);
+            _booleanOptions.remove(I2PTunnelHTTPClient.PROP_ACCEPT);
     }
     public void setAllowInternalSSL(boolean val) {
         if (val)
diff --git a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java
index e1088557ab86031f9afc82b7f47d39ea5719d3b2..aae4d50a35a9a48395ec51e013faf54e0714f544 100644
--- a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java
+++ b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java
@@ -27,9 +27,11 @@ package i2p.susi.dns;
 import java.io.ByteArrayInputStream;
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileReader;
+import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -71,7 +73,7 @@ public class SubscriptionsBean extends BaseBean
 			StringBuilder buf = new StringBuilder();
 			BufferedReader br = null;
 			try {
-				br = new BufferedReader( new FileReader( file ) );
+				br = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));
 				String line;
 				while( ( line = br.readLine() ) != null ) {
 					buf.append( line );
@@ -108,7 +110,7 @@ public class SubscriptionsBean extends BaseBean
                                     urls.add(line);
 			}
 			Collections.sort(urls);
-			PrintWriter out = new PrintWriter( new SecureFileOutputStream( file ) );
+			PrintWriter out = new PrintWriter(new OutputStreamWriter(new SecureFileOutputStream(file), "UTF-8"));
 			for (String url : urls) {
 				out.println(url);
 			}
diff --git a/core/java/src/net/i2p/crypto/CertUtil.java b/core/java/src/net/i2p/crypto/CertUtil.java
index 4d85aa691781969b39749d839f08a3e5138262db..e0b73cade6f021fb8362109070de4c94dfbeb3e6 100644
--- a/core/java/src/net/i2p/crypto/CertUtil.java
+++ b/core/java/src/net/i2p/crypto/CertUtil.java
@@ -3,6 +3,7 @@ package net.i2p.crypto;
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateEncodingException;
@@ -45,7 +46,7 @@ public class CertUtil {
            // Get the encoded form which is suitable for exporting
            byte[] buf = cert.getEncoded();
            os = new SecureFileOutputStream(file);
-           wr = new PrintWriter(os);
+           wr = new PrintWriter(new OutputStreamWriter(os, "UTF-8"));
            wr.println("-----BEGIN CERTIFICATE-----");
            String b64 = Base64.encode(buf, true);     // true = use standard alphabet
            for (int i = 0; i < b64.length(); i += LINE_LENGTH) {
diff --git a/core/java/src/net/i2p/stat/BufferedStatLog.java b/core/java/src/net/i2p/stat/BufferedStatLog.java
index 20b6a2a498d1f3396f8a1b182b3b755d8c594496..7c9b7b72318a6ac072eaaa7cb04cfcc732f2a9a7 100644
--- a/core/java/src/net/i2p/stat/BufferedStatLog.java
+++ b/core/java/src/net/i2p/stat/BufferedStatLog.java
@@ -2,8 +2,9 @@ package net.i2p.stat;
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileWriter;
+import java.io.FileOutputStream;
 import java.io.IOException;
+import java.io.OutputStreamWriter;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
@@ -115,7 +116,7 @@ public class BufferedStatLog implements StatLog {
             if (_out != null) try { _out.close(); } catch (IOException ioe) {}
             _outFile = filename;
             try {
-                _out = new BufferedWriter(new FileWriter(_outFile, true), 32*1024);
+                _out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(_outFile, true), "UTF-8"), 32*1024);
             } catch (IOException ioe) { ioe.printStackTrace(); }
         }
     }