diff --git a/Makefile.am b/Makefile.am
index 50dee6b..e91faff 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -38,6 +38,9 @@
 test_create_read_window_v2_SOURCES = test/create_read_window_v2.c \
 				     $(TEST_MBOX_SRCS) $(TEST_MOCK_SRCS)
 
+test_create_write_window_v2_SOURCES = test/create_write_window_v2.c \
+				      $(TEST_MBOX_SRCS) $(TEST_MOCK_SRCS)
+
 check_PROGRAMS = test/sanity \
 		 test/copy_flash \
 		 test/erase_flash \
@@ -45,6 +48,7 @@
 		 test/get_mbox_info_v2 \
 		 test/reset_state \
 		 test/get_flash_info_v2 \
-		 test/create_read_window_v2
+		 test/create_read_window_v2 \
+		 test/create_write_window_v2
 
 TESTS = $(check_PROGRAMS)
diff --git a/test/create_read_window_v2.c b/test/create_read_window_v2.c
index 930f50f..34d6727 100644
--- a/test/create_read_window_v2.c
+++ b/test/create_read_window_v2.c
@@ -69,6 +69,7 @@
 	rc = mbox_cmp(ctx, response, sizeof(response));
 	assert(rc == 0);
 
+	/* Compare the reserved memory to the flash */
 	rc = memcmp(ctx->mem, data, sizeof(data));
 	assert(rc == 0);
 
diff --git a/test/create_write_window_v2.c b/test/create_write_window_v2.c
new file mode 100644
index 0000000..3682b72
--- /dev/null
+++ b/test/create_write_window_v2.c
@@ -0,0 +1,76 @@
+/*
+ * 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_write_window[] = {
+	0x06, 0x01, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static const uint8_t response[] = {
+	0x06, 0x01, 0xfd, 0xff, 0x03, 0x00, 0x00, 0x00,
+	0x00, 0x00, 0x00, 0x00, 0x00, 0x01
+};
+
+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_write_window,
+			sizeof(create_write_window));
+	assert(rc == 1);
+
+	rc = mbox_cmp(ctx, response, sizeof(response));
+	assert(rc == 0);
+
+	rc = memcmp(ctx->mem, data, sizeof(data));
+	assert(rc == 0);
+
+	return rc;
+};
