diff --git a/libMEDSannotation/include/MEDS_FuncAnnotation.hpp b/libMEDSannotation/include/MEDS_FuncAnnotation.hpp
index c2c246ff7319c20cdc34baebc0bae764b50759dc..e4dc9347c531c14729f85d769f56b08bc729a5eb 100644
--- a/libMEDSannotation/include/MEDS_FuncAnnotation.hpp
+++ b/libMEDSannotation/include/MEDS_FuncAnnotation.hpp
@@ -37,7 +37,7 @@ using namespace std;
 using namespace MEDS_Annotation;
 
 //
-// Class to handle one MEDS (integer vulnerability) annotation
+// Class to handle one MEDS annotation
 //
 class MEDS_FuncAnnotation : public MEDS_AnnotationBase
 {
@@ -50,8 +50,16 @@ class MEDS_FuncAnnotation : public MEDS_AnnotationBase
 		virtual string getFuncName() const { return m_func_name; }
 		virtual void setFuncName(const string &p_func_name) { m_func_name=p_func_name; }
 
+		virtual bool isLeaf() const { return m_isleaf; }
+		virtual void setLeaf(const bool p_leaf) { m_isleaf = p_leaf; }
+
+		virtual bool hasFramePointer() const { return m_hasfp; }
+		virtual void setHasFramePointer(const bool p_hasfp) { m_hasfp = p_hasfp; }
+
 	private:
 		string m_func_name;
+		bool m_isleaf;
+		bool m_hasfp;
 };
 
 }
diff --git a/libMEDSannotation/src/MEDS_SafeFuncAnnotation.cpp b/libMEDSannotation/src/MEDS_SafeFuncAnnotation.cpp
index b5ad37b3f113d1dd454eaaf1edeafe657488d103..de7af940b984d1d2daf2694bdaf419f9c962f5d2 100644
--- a/libMEDSannotation/src/MEDS_SafeFuncAnnotation.cpp
+++ b/libMEDSannotation/src/MEDS_SafeFuncAnnotation.cpp
@@ -39,6 +39,8 @@ MEDS_SafeFuncAnnotation::MEDS_SafeFuncAnnotation(const string &p_rawLine)
 {
 	init();
 	m_rawInputLine=p_rawLine;
+	setLeaf(false);
+	setHasFramePointer(true);
 	parse();
 }
 
@@ -104,5 +106,27 @@ void MEDS_SafeFuncAnnotation::parse()
 		markUnsafe();	 // sets valid
 	}
 
+        if (m_rawInputLine.find(" FUNC_LEAF ")!=string::npos)
+	{
+		if(getenv("VERBOSE"))
+			cout<<"Found FUNC_LEAF for "<<vo.to_string()<<endl;
+		setLeaf(true);
+	}
+	else
+	{
+		setLeaf(false);
+	}
+
+        if (m_rawInputLine.find(" NOFP ")!=string::npos)
+	{
+		if(getenv("VERBOSE"))
+			cout<<"Found NOFP (no frame pointer) for "<<vo.to_string()<<endl;
+		setHasFramePointer(false);
+	}
+	else
+	{
+		setHasFramePointer(true);
+	}
+
 }
 
diff --git a/libcapstone b/libcapstone
index 4f05e83334ec6a10e1ed93018affe9091a576f84..bfa649ff1a0ed3807f94ac2d5690c5c3108cc75f 160000
--- a/libcapstone
+++ b/libcapstone
@@ -1 +1 @@
-Subproject commit 4f05e83334ec6a10e1ed93018affe9091a576f84
+Subproject commit bfa649ff1a0ed3807f94ac2d5690c5c3108cc75f