diff --git a/libMEDSannotation/include/MEDS_AnnotationBase.hpp b/libMEDSannotation/include/MEDS_AnnotationBase.hpp
index ca2227f9f09fb16419f2d6727a24dffde4b5070e..997fdcaffa9f4c97966398196889d278780e650b 100644
--- a/libMEDSannotation/include/MEDS_AnnotationBase.hpp
+++ b/libMEDSannotation/include/MEDS_AnnotationBase.hpp
@@ -33,33 +33,28 @@ namespace MEDS_Annotation
 // base class for deriving objects.
 class MEDS_AnnotationBase
 {
-	public:
-
+	public:			
 		MEDS_AnnotationBase() { init(); }
 		virtual ~MEDS_AnnotationBase()  { }
 
 		/* i'd rather make this a pure virtual func, but can't figure out why it won't compile */
 		virtual const std::string toString() const { assert(0); }
 
-                // valid annotation?
-                virtual bool isValid() const { return m_isValid; }
-                virtual void setValid() { m_isValid = true; }
+		// valid annotation?
+		virtual bool isValid() const { return m_isValid; }
+		virtual void setValid() { m_isValid = true; }
+		virtual void setInvalid() { m_isValid = false; }
 
-                // virtual offset
-                virtual VirtualOffset getVirtualOffset() const { return m_virtualOffset; }
+		// virtual offset
+		virtual VirtualOffset getVirtualOffset() const { return m_virtualOffset; }
 
 		virtual void init() { m_isValid=false; }
 
-                virtual bool isFuncAnnotation() const { return false; } // false by default 
+		virtual bool isFuncAnnotation() const { return false; } // false by default 
 
 	protected:
-
 		bool m_isValid;
-                VirtualOffset  m_virtualOffset;
-
-
-
-	
+		VirtualOffset  m_virtualOffset;
 };
 
 }
diff --git a/libMEDSannotation/include/VirtualOffset.hpp b/libMEDSannotation/include/VirtualOffset.hpp
index bd5ed20211c94aca69ee1e061cacf5539ea7a7d0..8ae328e715236ca9626a22244abf40751a3378eb 100644
--- a/libMEDSannotation/include/VirtualOffset.hpp
+++ b/libMEDSannotation/include/VirtualOffset.hpp
@@ -44,6 +44,7 @@ class VirtualOffset
 		VirtualOffset& operator = (const VirtualOffset &p_other);
 
 		const std::string to_string() const { std::ostringstream oss; oss<<getLibraryName() << "+0x"<<std::hex<<getOffset(); return oss.str(); }
+		const std::string toString() const { return to_string(); }
 
 	private:
 		ApplicationAddress   m_offset;
diff --git a/libMEDSannotation/src/MEDS_AnnotationParser.cpp b/libMEDSannotation/src/MEDS_AnnotationParser.cpp
index 0402a702483dbcc95110f2467a0081729b691777..9d80a8c0ac1346963ece0bbc17e1e6c287e710c3 100644
--- a/libMEDSannotation/src/MEDS_AnnotationParser.cpp
+++ b/libMEDSannotation/src/MEDS_AnnotationParser.cpp
@@ -27,6 +27,7 @@
 #include "MEDS_SafeFuncAnnotation.hpp"
 #include "MEDS_ProblemFuncAnnotation.hpp"
 #include "MEDS_FRSafeAnnotation.hpp"
+#include "MEDS_FPTRShadowAnnotation.hpp"
 
 // @todo: multiple annotation per instruction
 
@@ -81,6 +82,7 @@ void MEDS_AnnotationParser::parseFile(istream &p_inputStream)
 				delete annot; \
 		}
 
+		ADD_AND_CONTINUE_IF_VALID(MEDS_FPTRShadowAnnotation);
 		ADD_AND_CONTINUE_IF_VALID(MEDS_InstructionCheckAnnotation);
 		ADD_AND_CONTINUE_IF_VALID(MEDS_SafeFuncAnnotation);
 		ADD_AND_CONTINUE_IF_VALID(MEDS_ProblemFuncAnnotation);
diff --git a/libMEDSannotation/src/Makefile b/libMEDSannotation/src/Makefile
index ef9151510c66861995edad75d06c7c9795c4927f..ef6cfce3eba7fe102ee97e35ea95ae7f6c571126 100644
--- a/libMEDSannotation/src/Makefile
+++ b/libMEDSannotation/src/Makefile
@@ -1,7 +1,7 @@
 
 LIB=../lib/libMEDSannotation.a
 
-OBJS=VirtualOffset.o MEDS_Register.o MEDS_AnnotationParser.o MEDS_InstructionCheckAnnotation.o MEDS_SafeFuncAnnotation.o MEDS_ProblemFuncAnnotation.o MEDS_FRSafeAnnotation.o FuncExitAnnotation.o
+OBJS=VirtualOffset.o MEDS_Register.o MEDS_AnnotationParser.o MEDS_InstructionCheckAnnotation.o MEDS_SafeFuncAnnotation.o MEDS_ProblemFuncAnnotation.o MEDS_FRSafeAnnotation.o FuncExitAnnotation.o MEDS_FPTRShadowAnnotation.o
 
 all: $(OBJS)