diff --git a/core/src/main/scala/kafka/log/FileMessageSet.scala b/core/src/main/scala/kafka/log/FileMessageSet.scala
index c4397b7..b6cb3cf 100644
--- a/core/src/main/scala/kafka/log/FileMessageSet.scala
+++ b/core/src/main/scala/kafka/log/FileMessageSet.scala
@@ -58,6 +58,11 @@ class FileMessageSet private[kafka](val file: File,
    * Create a file message set with no limit or offset
    */
   def this(file: File) = this(file, Utils.openChannel(file, mutable = true))
+
+  /**
+   * Create a file message set with mutable option
+   */
+  def this(file: File, mutable: Boolean) = this(file, Utils.openChannel(file, mutable))
   
   /**
    * Return a message set which is a view into this set starting from the given position and with the given size limit.
diff --git a/core/src/main/scala/kafka/tools/DumpLogSegments.scala b/core/src/main/scala/kafka/tools/DumpLogSegments.scala
index dc3dcdf..49b5d4a 100644
--- a/core/src/main/scala/kafka/tools/DumpLogSegments.scala
+++ b/core/src/main/scala/kafka/tools/DumpLogSegments.scala
@@ -94,7 +94,7 @@ object DumpLogSegments {
     val startOffset = file.getName().split("\\.")(0).toLong
     val logFileName = file.getAbsolutePath.split("\\.")(0) + Log.LogFileSuffix
     val logFile = new File(logFileName)
-    val messageSet = new FileMessageSet(logFile)
+    val messageSet = new FileMessageSet(logFile, false)
     val index = new OffsetIndex(file = file, baseOffset = startOffset)
     for(i <- 0 until index.entries) {
       val entry = index.entry(i)
@@ -120,7 +120,7 @@ object DumpLogSegments {
                       isDeepIteration: Boolean) {
     val startOffset = file.getName().split("\\.")(0).toLong
     println("Starting offset: " + startOffset)
-    val messageSet = new FileMessageSet(file)
+    val messageSet = new FileMessageSet(file, false)
     var validBytes = 0L
     var lastOffset = -1l
     for(shallowMessageAndOffset <- messageSet) { // this only does shallow iteration
