diff --git a/libMEDSannotation/include/MEDS_FPTRShadowAnnotation.hpp b/libMEDSannotation/include/MEDS_FPTRShadowAnnotation.hpp
index e682e893d642f2330fb2aac92aa3c0079abaad0a..b6647248ecc7fa7363eefb5cb39b77f688020a80 100644
--- a/libMEDSannotation/include/MEDS_FPTRShadowAnnotation.hpp
+++ b/libMEDSannotation/include/MEDS_FPTRShadowAnnotation.hpp
@@ -70,6 +70,8 @@ class MEDS_FPTRShadowAnnotation : public MEDS_ShadowAnnotation
 		const RegisterName getRegister() const;
 		const string& getExpression() const { return m_expression; }
 
+		const bool isFunctionPointerShadow() const { return m_functionPointerShadow; }
+		const bool isCriticalArgumentShadow() const { return m_criticalArgumentShadow; }
 	private:
 		void parse();
 		void setExpression(const string p_expression) { 
@@ -80,9 +82,14 @@ class MEDS_FPTRShadowAnnotation : public MEDS_ShadowAnnotation
 		int parseRegisterOffset(const char*);
 		void parseRegister(const char *p_buf, RegisterName *p_register, int *p_registerOffset);
 
+		void setFunctionPointerShadow(const bool p_val) { m_functionPointerShadow = p_val; }
+		void setCriticalArgumentShadow(const bool p_val) { m_criticalArgumentShadow = p_val; }
+
 	private:
 		string m_rawInputLine;
 		string m_expression;
+		bool m_functionPointerShadow;
+		bool m_criticalArgumentShadow;
 };
 
 }
diff --git a/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp b/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp
index 156a4494f1d3db9cdcac5abd6c7e577aec493979..cedd24f16b8b9e06c31117cb51f1f335bbb058d1 100644
--- a/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp
+++ b/libMEDSannotation/src/MEDS_FPTRShadowAnnotation.cpp
@@ -61,11 +61,15 @@ using namespace MEDS_Annotation;
 MEDS_FPTRShadowAnnotation::MEDS_FPTRShadowAnnotation() : MEDS_ShadowAnnotation()
 {
 	setInvalid();	
+	setCriticalArgumentShadow(false);
+	setFunctionPointerShadow(false);
 }
 
 MEDS_FPTRShadowAnnotation::MEDS_FPTRShadowAnnotation(const string &p_rawLine) : MEDS_ShadowAnnotation()
 {
 	setInvalid();	
+	setCriticalArgumentShadow(false);
+	setFunctionPointerShadow(false);
 	m_rawInputLine=p_rawLine;
 	parse();
 }
@@ -79,10 +83,16 @@ void MEDS_FPTRShadowAnnotation::parse()
 		setDefineShadowId();
 
 	if (m_rawInputLine.find(MEDS_ANNOT_ARGSHADOW)!=string::npos)
+	{
+		setCriticalArgumentShadow(true);
 		setDefineShadowId();
+	}
 
 	if (m_rawInputLine.find(MEDS_ANNOT_FPTRCHECK)!=string::npos)
+	{
+		setFunctionPointerShadow(true);
 		setCheckShadowId();
+	}
 
 	if (m_rawInputLine.find(MEDS_ANNOT_ARGCHECK)!=string::npos)
 		setCheckShadowId();