diff --git a/libIRDB/src/core/decode_cs.cpp b/libIRDB/src/core/decode_cs.cpp
index 8c0b226b3db681e878c9be2b01808fc409e68772..9ec9d6415b7d3c81a5a495707ff91141c9f98e8c 100644
--- a/libIRDB/src/core/decode_cs.cpp
+++ b/libIRDB/src/core/decode_cs.cpp
@@ -152,6 +152,9 @@ void DecodedInstructionCapstone_t::Disassemble(const virtual_offset_t start_addr
 	
 	}
 
+	if(string(insn->mnemonic)=="fcompi")
+		strcpy(insn->mnemonic, "fcomip"); // bad opcode out of capstone.
+
 
 	const auto cs_freer=[](cs_insn * insn) -> void 
 		{  
diff --git a/libIRDB/src/core/operand_cs.cpp b/libIRDB/src/core/operand_cs.cpp
index 7915ec5ef06099c9003121b38bfc88592e806355..4abe51cb762e53a746ca4b03e3725601886ec851 100644
--- a/libIRDB/src/core/operand_cs.cpp
+++ b/libIRDB/src/core/operand_cs.cpp
@@ -545,12 +545,12 @@ set<string> read_only_operand_mnemonics=
 		"vcomiss",
 
 		// comisd "comapre scalar ordered double-preicions floating-point values and set flags
-		"comisd"
-		"vcomisd"
+		"comisd",
+		"vcomisd",
 
 		// ucomisd "comapre scalar ordered double-preicions floating-point values and set flags
-		"ucomisd"
-		"vucomisd"
+		"ucomisd",
+		"vucomisd",
 
 		// packed bit test
 		"vtestps",
@@ -601,7 +601,7 @@ set<string> read_only_operand_mnemonics=
 		"vpcmpistrm",
 
 		// test if in transactional region
-		"xtest"
+		"xtest",
 
 	};