diff --git a/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java b/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java
index 8ecd111ef7b5ddbef82caf7e1683f9f969fb9788..2848b00909835d63de0f8076ea9234b7bc0ea69b 100644
--- a/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java
+++ b/apps/i2psnark/java/src/org/klomp/snark/dht/PersistDHT.java
@@ -87,6 +87,8 @@ abstract class PersistDHT {
                  out.println(ni.toPersistentString());
                  count++;
             }
+            if (out.checkError())
+                throw new IOException("Failed write to " + file);
         } catch (IOException ioe) {
             if (log.shouldLog(Log.WARN))
                 log.warn("Error writing the DHT File", ioe);
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 15d394336e6f9544317643c90364d1ec1ea19c62..ec869f62550b08488d294821decc370f778f96d0 100644
--- a/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java
+++ b/apps/susidns/src/java/src/i2p/susi/dns/SubscriptionsBean.java
@@ -112,6 +112,8 @@ public class SubscriptionsBean extends BaseBean
 				out.println(url);
 			}
 			out.close();
+                        if (out.checkError())
+                            throw new IOException("Failed write to " + file);
 		} catch (IOException e) {
 			// TODO Auto-generated catch block
 			e.printStackTrace();
diff --git a/core/java/src/net/i2p/crypto/CertUtil.java b/core/java/src/net/i2p/crypto/CertUtil.java
index aa484a52269bc9c9f253cb1a189e9a14a62524fd..4d85aa691781969b39749d839f08a3e5138262db 100644
--- a/core/java/src/net/i2p/crypto/CertUtil.java
+++ b/core/java/src/net/i2p/crypto/CertUtil.java
@@ -53,6 +53,8 @@ public class CertUtil {
            }
            wr.println("-----END CERTIFICATE-----");
            wr.flush();
+           if (wr.checkError())
+               throw new IOException("Failed write to " + file);
            return true;
         } catch (CertificateEncodingException cee) {
             error("Error writing X509 Certificate " + file.getAbsolutePath(), cee);
diff --git a/core/java/src/net/i2p/data/DataHelper.java b/core/java/src/net/i2p/data/DataHelper.java
index ffa1d2577d3b9dc39f4a6bfbe3505b002adb5cb3..55e15727d9b4de07906068ca50056cd174116c1d 100644
--- a/core/java/src/net/i2p/data/DataHelper.java
+++ b/core/java/src/net/i2p/data/DataHelper.java
@@ -529,6 +529,11 @@ public class DataHelper {
             out.flush();
             fos.getFD().sync();
             out.close();
+            if (out.checkError()) {
+                out = null;
+                tmpFile.delete();
+                throw new IOException("Failed to write properties to " + tmpFile);
+            }
             out = null;
             if (!FileUtil.rename(tmpFile, file))
                 throw new IOException("Failed rename from " + tmpFile + " to " + file);
diff --git a/router/java/src/net/i2p/router/startup/WorkingDir.java b/router/java/src/net/i2p/router/startup/WorkingDir.java
index 3be6b6309f99a462811c03683c11b0cf86203e94..b8503224f6f2cc0d1b14064a20f43b48a5046649 100644
--- a/router/java/src/net/i2p/router/startup/WorkingDir.java
+++ b/router/java/src/net/i2p/router/startup/WorkingDir.java
@@ -322,6 +322,8 @@ public class WorkingDir {
                 out.println(s);
             }
             System.err.println("Copied " + oldFile + " with modifications");
+            if (out.checkError())
+                throw new IOException("Failed write to " + newFile);
             return true;
         } catch (IOException ioe) {
             if (in != null) {