diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java
index ecd9168..86d19b2 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadRequest.java
@@ -1,8 +1,8 @@
 package org.onlab.onos.store.service;
 
-import java.util.Collections;
 import java.util.List;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
 /**
@@ -22,7 +22,7 @@
     }
 
     private BatchReadRequest(List<ReadRequest> readRequests) {
-        this.readRequests = Collections.unmodifiableList(readRequests);
+        this.readRequests = ImmutableList.copyOf(readRequests);
     }
 
     /**
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java
index 525e77f..683ca1c 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchReadResult.java
@@ -1,8 +1,9 @@
 package org.onlab.onos.store.service;
 
-import java.util.Collections;
 import java.util.List;
 
+import com.google.common.collect.ImmutableList;
+
 /**
  * Result of a batch read operation.
  */
@@ -11,7 +12,7 @@
     private final List<ReadResult> readResults;
 
     public BatchReadResult(List<ReadResult> readResults)  {
-        this.readResults = Collections.unmodifiableList(readResults);
+        this.readResults = ImmutableList.copyOf(readResults);
     }
 
     /**
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java
index ae1fa21..31deb4d 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteRequest.java
@@ -1,8 +1,8 @@
 package org.onlab.onos.store.service;
 
-import java.util.Collections;
 import java.util.List;
 
+import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
 /**
@@ -22,7 +22,7 @@
     }
 
     private BatchWriteRequest(List<WriteRequest> writeRequests) {
-        this.writeRequests = Collections.unmodifiableList(writeRequests);
+        this.writeRequests = ImmutableList.copyOf(writeRequests);
     }
 
     /**
diff --git a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java
index 4e1848b..b185072 100644
--- a/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java
+++ b/core/api/src/main/java/org/onlab/onos/store/service/BatchWriteResult.java
@@ -1,8 +1,9 @@
 package org.onlab.onos.store.service;
 
-import java.util.Collections;
 import java.util.List;
 
+import com.google.common.collect.ImmutableList;
+
 /**
  * Result of a batch write operation.
  */
@@ -11,7 +12,7 @@
     private final List<WriteResult> writeResults;
 
     public BatchWriteResult(List<WriteResult> writeResults) {
-        this.writeResults = Collections.unmodifiableList(writeResults);
+        this.writeResults = ImmutableList.copyOf(writeResults);
     }
 
     /**
