diff --git a/java/src/com/tightvnc/decoder/CoRREDecoder.java b/java/src/com/tightvnc/decoder/CoRREDecoder.java
index 56cb7ab..3ab437a 100644
--- a/java/src/com/tightvnc/decoder/CoRREDecoder.java
+++ b/java/src/com/tightvnc/decoder/CoRREDecoder.java
@@ -43,13 +43,13 @@
     rfbis.readFully(buf);
 
     //
-    // Save decoded data to RecordInterface
+    // Save decoded data to data output stream
     //
 
-    if (rec.canWrite()) {
-      rec.writeIntBE(nSubrects);
-      rec.write(bg_buf);
-      rec.write(buf);
+    if (dos != null) {
+      dos.writeInt(nSubrects);
+      dos.write(bg_buf);
+      dos.write(buf);
     }
 
     int sx, sy, sw, sh;
diff --git a/java/src/com/tightvnc/decoder/HextileDecoder.java b/java/src/com/tightvnc/decoder/HextileDecoder.java
index adf5937..1e4ef09 100644
--- a/java/src/com/tightvnc/decoder/HextileDecoder.java
+++ b/java/src/com/tightvnc/decoder/HextileDecoder.java
@@ -76,11 +76,11 @@
     int subencoding = rfbis.readU8();
 
     //
-    // Save decoded data to RecordInterface
+    // Save decoded data to data output stream
     //
 
-    if (rec.canWrite()) {
-      rec.writeByte((byte)subencoding);
+    if (dos != null) {
+      dos.writeByte((byte)subencoding);
     }
 
     // Is it a raw-encoded sub-rectangle?
@@ -102,11 +102,11 @@
       }
 
       //
-      // Save decoded data to RecordInterface
+      // Save decoded data to data output stream
       //
 
-      if (rec.canWrite()) {
-        rec.write(cbuf);
+      if (dos != null) {
+        dos.write(cbuf);
       }
     }
     graphics.setColor(hextile_bg);
@@ -122,11 +122,11 @@
       }
 
       //
-      // Save decoded data to RecordInterface
+      // Save decoded data to data output stream
       //
 
-      if (rec.canWrite()) {
-        rec.write(cbuf);
+      if (dos != null) {
+        dos.write(cbuf);
       }
     }
 
@@ -143,12 +143,12 @@
     rfbis.readFully(buf);
 
     //
-    // Save decoded data to RecordInterface
+    // Save decoded data to data output stream
     //
 
-    if (rec.canWrite()) {
-      rec.writeByte((byte)nSubrects);
-      rec.write(buf);
+    if (dos != null) {
+      dos.writeByte((byte)nSubrects);
+      dos.write(buf);
     }
 
     int b1, b2, sx, sy, sw, sh;
diff --git a/java/src/com/tightvnc/decoder/RREDecoder.java b/java/src/com/tightvnc/decoder/RREDecoder.java
index ce70606..72a5fdf 100644
--- a/java/src/com/tightvnc/decoder/RREDecoder.java
+++ b/java/src/com/tightvnc/decoder/RREDecoder.java
@@ -44,12 +44,12 @@
     DataInputStream ds = new DataInputStream(new ByteArrayInputStream(buf));
 
     //
-    // Save decoded data to RecordInterface
+    // Save decoded data to data output stream
     //
-    if (rec.canWrite()) {
-      rec.writeIntBE(nSubrects);
-      rec.write(bg_buf);
-      rec.write(buf);
+    if (dos != null) {
+      dos.writeInt(nSubrects);
+      dos.write(bg_buf);
+      dos.write(buf);
     }
 
     int sx, sy, sw, sh;
