diff --git a/Processors/Decoders/x86/x86.cpp b/Processors/Decoders/x86/x86.cpp
index 403841d3a..9eb37f99b 100644
--- a/Processors/Decoders/x86/x86.cpp
+++ b/Processors/Decoders/x86/x86.cpp
@@ -182,6 +182,9 @@ Instruction Decoder::decode(uint8_t *source, size_t length) {
 			MapRegData(0xbc, MOV, true, SP);	MapRegData(0xbd, MOV, true, BP);
 			MapRegData(0xbe, MOV, true, SI);	MapRegData(0xbf, MOV, true, DI);
 
+			MapComplete(0xc3, RETIntra, None, None);
+			MapComplete(0xcb, RETInter, None, None);
+
 			// Other prefix bytes.
 			case 0xf0:	lock_ = true;						break;
 			case 0xf2:	repetition_ = Repetition::RepNE;	break;
diff --git a/Processors/Decoders/x86/x86.hpp b/Processors/Decoders/x86/x86.hpp
index 3661aa834..f123eb025 100644
--- a/Processors/Decoders/x86/x86.hpp
+++ b/Processors/Decoders/x86/x86.hpp
@@ -37,9 +37,12 @@ enum class Operation: uint8_t {
 	JMP, JCXZ,
 	LAHF, LDS, LEA,
 	LODS, LOOPE, LOOPNE, MOV, MOVS, MUL, NEG, NOP, NOT, OR, OUT,
-	POP, POPF, PUSH, PUSHF, RCL, RCR, REP, RET, ROL, ROR, SAHF,
+	POP, POPF, PUSH, PUSHF, RCL, RCR, REP, ROL, ROR, SAHF,
 	SAR, SBB, SCAS, SHL, SHR, STC, STD, STI, STOS, SUB, TEST,
-	WAIT, XCHG, XLAT, XOR
+	WAIT, XCHG, XLAT, XOR,
+
+	RETInter,
+	RETIntra,
 };
 
 enum class Size: uint8_t {