diff --git a/src/mod/languages/mod_perl/mod_perl.c b/src/mod/languages/mod_perl/mod_perl.c
index 01795fa..d5c4d33 100644
--- a/src/mod/languages/mod_perl/mod_perl.c
+++ b/src/mod/languages/mod_perl/mod_perl.c
@@ -45,6 +45,7 @@
 #include <EXTERN.h>
 #include <perl.h>
 #include <switch.h>
+#include "mod_perl_extra.h"
 static char *embedding[] = { "", "-e", "0", NULL };
 EXTERN_C void xs_init(pTHX);
 
diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
index 8e49462..a11ebb3 100644
--- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
+++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
@@ -359,7 +359,7 @@ static abyss_bool is_authorized(const TSession * r, const char *command)
 
 	err = 686;
 
-	if (!user_attributes(user, domain_name, NULL, NULL, NULL, &allowed_commands)) {
+	if (!user_attributes(user, domain_name, NULL, NULL, NULL, (const char **)&allowed_commands)) {
 		goto end;
 	}
 
@@ -944,7 +944,7 @@ abyss_bool handler_hook(TSession * r)
 							break;
 						}
 
-						ConnRead(r->connP, 2000, NULL, NULL, &readError);
+						ConnRead(r->connP, 2000, NULL, NULL, (const char **)&readError);
 		                if (readError) {
 							succeeded = FALSE;
 							free(readError);

diff --git a/src/mod/languages/mod_perl/mod_perl.c b/src/mod/languages/mod_perl/mod_perl.c
index f3d7b47..0582045 100644
--- a/src/mod/languages/mod_perl/mod_perl.c
+++ b/src/mod/languages/mod_perl/mod_perl.c
@@ -208,7 +208,7 @@ static perl_parse_and_execute(PerlInterpreter * my_perl, char *input_code, char
 
 
 
-static void perl_function(switch_core_session_t *session, char *data)
+static void perl_function(switch_core_session_t *session, const char *data)
 {
 	char *uuid = switch_core_session_get_uuid(session);
 	PerlInterpreter *my_perl = clone_perl();
