diff --git a/lib/java/src/org/apache/thrift/TUnion.java b/lib/java/src/org/apache/thrift/TUnion.java
index 2af891b..e33c7f2 100644
--- a/lib/java/src/org/apache/thrift/TUnion.java
+++ b/lib/java/src/org/apache/thrift/TUnion.java
@@ -23,6 +23,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.nio.ByteBuffer;
 
 import org.apache.thrift.protocol.TField;
 import org.apache.thrift.protocol.TProtocol;
@@ -54,11 +55,8 @@
   private static Object deepCopyObject(Object o) {
     if (o instanceof TBase) {
       return ((TBase)o).deepCopy();
-    } else if (o instanceof byte[]) {
-      byte[] other_val = (byte[])o;
-      byte[] this_val = new byte[other_val.length];
-      System.arraycopy(other_val, 0, this_val, 0, other_val.length);
-      return this_val;
+    } else if (o instanceof ByteBuffer) {
+      return TBaseHelper.copyBinary((ByteBuffer)o);
     } else if (o instanceof List) {
       return deepCopyList((List)o);
     } else if (o instanceof Set) {
