diff --git a/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java b/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
index 4afd144..41f78d2 100644
--- a/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
+++ b/src/main/java/net/onrc/onos/core/datagrid/HazelcastEventChannel.java
@@ -1,5 +1,6 @@
 package net.onrc.onos.core.datagrid;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -343,7 +344,9 @@
             //
             // Decode the value
             //
-            byte[] valueBytes = event.getValue();
+            byte[] original = event.getValue();
+            // Copying byte[], to see if it resolves ONOS-1343.
+            byte[] valueBytes = Arrays.copyOf(original, original.length);
             Kryo kryo = kryoFactory.newKryo();
             try {
                 V value = deserializeValue(kryo, valueBytes);
@@ -380,7 +383,9 @@
             //
             // Decode the value
             //
-            byte[] valueBytes = event.getValue();
+            byte[] original = event.getValue();
+            // Copying byte[], to see if it resolves ONOS-1343.
+            byte[] valueBytes = Arrays.copyOf(original, original.length);
             Kryo kryo = kryoFactory.newKryo();
             try {
                 V value = deserializeValue(kryo, valueBytes);
@@ -414,7 +419,9 @@
             //
             // Decode the value
             //
-            byte[] valueBytes = event.getValue();
+            byte[] original = event.getValue();
+            // Copying byte[], to see if it resolves ONOS-1343.
+            byte[] valueBytes = Arrays.copyOf(original, original.length);
             Kryo kryo = kryoFactory.newKryo();
             try {
                 V value = deserializeValue(kryo, valueBytes);
