diff --git a/sample/protect-re.cpp b/sample/protect-re.cpp
new file mode 100644
index 0000000..6eaa863
--- /dev/null
+++ b/sample/protect-re.cpp
@@ -0,0 +1,70 @@
+#define XBYAK_NO_OP_NAMES
+#include <xbyak/xbyak.h>
+
+struct Code1 : Xbyak::CodeGenerator {
+	Code1()
+		: Xbyak::CodeGenerator(4096, Xbyak::DontSetProtectRWE)
+	{
+		mov(eax, 123);
+		ret();
+	}
+	void update()
+	{
+		db(0);
+	}
+};
+
+void test1(bool updateCode)
+{
+	Code1 c;
+	c.setProtectModeRE();
+	if (updateCode) c.update(); // segmentation fault
+	int (*f)() = c.getCode<int (*)()>();
+	printf("f=%d\n", f());
+	
+	c.setProtectModeRW();
+	c.update();
+	puts("ok");
+}
+
+struct Code2 : Xbyak::CodeGenerator {
+	Code2()
+		: Xbyak::CodeGenerator(4096, Xbyak::AutoGrow)
+	{
+		mov(eax, 123);
+		ret();
+	}
+	void update()
+	{
+		db(0);
+	}
+};
+
+void test2(bool updateCode)
+{
+	Code2 c;
+	c.readyRE();
+	if (updateCode) c.update(); // segmentation fault
+	int (*f)() = c.getCode<int (*)()>();
+	printf("f=%d\n", f());
+	
+	c.setProtectModeRW();
+	c.update();
+	puts("ok");
+}
+
+int main(int argc, char *argv[])
+{
+	if (argc < 2) {
+		fprintf(stderr, "%s <testNum> [update]\n", argv[0]);
+		return 0;
+	}
+	bool update = argc == 3;
+	int n = atoi(argv[1]);
+	printf("n=%d update=%d\n", n, update);
+	switch (n) {
+	case 1: test1(update); break;
+	case 2: test2(update); break;
+	default: fprintf(stderr, "no test %d\n", n); break;
+	}
+}
