diff --git a/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp b/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp
index 1e379568f30c74a276083a3eda7e9dce37c563b8..172835c6645c9fda49ac185d9c951798401c198b 100644
--- a/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp
+++ b/libMEDSannotation/src/MEDS_FuncPrototypeAnnotation.cpp
@@ -28,6 +28,8 @@
 #include "MEDS_Register.hpp"
 #include "MEDS_FuncPrototypeAnnotation.hpp"
 
+#define MAX_BUF_SIZE 16000
+
 using namespace std;
 using namespace MEDS_Annotation;
 
@@ -79,8 +81,8 @@ void MEDS_FuncPrototypeAnnotation::parse()
 	{
 // 4046e0     71 FUNC INARGS    4  ARG0 1 ARG1 0 ARG2 0 ARG3 0
 		int numargs = 0;
-		char buf[1024];
-		strcpy(buf, m_rawInputLine.c_str());
+		char buf[MAX_BUF_SIZE];
+		strncpy(buf, m_rawInputLine.c_str(), MAX_BUF_SIZE-1);
 		sscanf(buf, "%*x %*d %*s %*s %d %*s", &numargs);
 		for (int i = 0; i < numargs; ++i)
 		{
@@ -89,7 +91,7 @@ void MEDS_FuncPrototypeAnnotation::parse()
 			char *zarg = strstr(buf, arg);
 			if (zarg)
 			{
-				char tmp[1024];
+				char tmp[MAX_BUF_SIZE];
 				int meds_type;
 				sscanf(tmp,"%*s %d %*s", &meds_type);
 				MEDS_Arg marg(meds_type);
@@ -105,7 +107,7 @@ void MEDS_FuncPrototypeAnnotation::parse()
 	else if (about_return)
 	{
 		// 404740    697 FUNC RETURNTYPE RAX 1
-		char regbuf[1024];
+		char regbuf[MAX_BUF_SIZE];
 		int meds_retType;
 		sscanf(m_rawInputLine.c_str(), "%*x %*d %*s %*s %s %d", regbuf, &meds_retType);
 		RegisterName reg = Register::getRegister(regbuf);