diff --git a/Makefile.am b/Makefile.am
index a9406c1..59b5450 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -74,6 +74,9 @@
 test_mark_read_dirty_SOURCES = test/mark_read_dirty.c \
 			     $(TEST_MBOX_SRCS) $(TEST_MOCK_SRCS)
 
+test_read_window_write_flush_SOURCES = test/read_window_write_flush.c \
+			     $(TEST_MBOX_SRCS) $(TEST_MOCK_SRCS)
+
 check_PROGRAMS = test/sanity \
 		 test/copy_flash \
 		 test/erase_flash \
@@ -93,6 +96,7 @@
 		 test/implicit_flush \
 		 test/request_high_version \
 		 test/request_low_version \
-		 test/mark_read_dirty 
+		 test/mark_read_dirty \
+		 test/read_window_write_flush
 
 TESTS = $(check_PROGRAMS)
diff --git a/test/read_window_write_flush.c b/test/read_window_write_flush.c
new file mode 100644
index 0000000..357a132
--- /dev/null
+++ b/test/read_window_write_flush.c
@@ -0,0 +1,81 @@
+/*
+ * MBox Daemon Test File
+ *
+ * Copyright 2017 IBM
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <assert.h>
+
+#include "mbox.h"
+#include "mboxd_msg.h"
+
+#include "test/mbox.h"
+#include "test/system.h"
+
+static const uint8_t get_info[] = {
+	0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const uint8_t create_read_window[] = {
+	0x04, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const uint8_t write_flush[] = {
+	0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const uint8_t response[] = {
+	0x08, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x07
+};
+
+uint8_t data[3] = { 0xaa, 0x55, 0xaa };
+
+#define MEM_SIZE	sizeof(data)
+#define ERASE_SIZE	1
+#define N_WINDOWS	1
+#define WINDOW_SIZE	sizeof(data)
+
+int main(void)
+{
+	struct mbox_context *ctx;
+	int rc;
+
+	system_set_reserved_size(MEM_SIZE);
+	system_set_mtd_sizes(MEM_SIZE, ERASE_SIZE);
+
+	ctx = mbox_create_test_context(N_WINDOWS, WINDOW_SIZE);
+	rc = mbox_set_mtd_data(ctx, data, sizeof(data));
+	assert(rc == 0);
+
+	rc = mbox_command_dispatch(ctx, get_info, sizeof(get_info));
+	assert(rc == 1);
+
+	rc = mbox_command_dispatch(ctx, create_read_window,
+			sizeof(create_read_window));
+	assert(rc == 1);
+
+	rc = mbox_command_dispatch(ctx, write_flush, sizeof(write_flush));
+	assert(rc == 7);
+
+	rc = mbox_cmp(ctx, response, sizeof(response));
+	assert(rc == 0);
+
+	return rc;
+};
