diff --git a/src/commonmark.c b/src/commonmark.c
index 5c08589..cbf99c1 100644
--- a/src/commonmark.c
+++ b/src/commonmark.c
@@ -368,9 +368,9 @@
       if (entering) {
         LIT("<");
         if (strncmp(cmark_node_get_url(node), "mailto:", 7) == 0) {
-          LIT((char *)cmark_node_get_url(node) + 7);
+          LIT((const char *)cmark_node_get_url(node) + 7);
         } else {
-          LIT((char *)cmark_node_get_url(node));
+          LIT((const char *)cmark_node_get_url(node));
         }
         LIT(">");
         // return signal to skip contents of node...
diff --git a/src/houdini_html_u.c b/src/houdini_html_u.c
index a2d927b..2f92544 100755
--- a/src/houdini_html_u.c
+++ b/src/houdini_html_u.c
@@ -9,12 +9,12 @@
 
 /* Binary tree lookup code for entities added by JGM */
 
-static unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s,
+static const unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s,
                                int len) {
   int j;
-  int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len);
+  int cmp = strncmp((const char *)s, (const char *)cmark_entities[i].entity, len);
   if (cmp == 0 && cmark_entities[i].entity[len] == 0) {
-    return (unsigned char *)cmark_entities[i].bytes;
+    return (const unsigned char *)cmark_entities[i].bytes;
   } else if (cmp < 0 && i > low) {
     j = i - ((i - low) / 2);
     if (j == i)
@@ -30,7 +30,7 @@
   }
 }
 
-static unsigned char *S_lookup_entity(const unsigned char *s, int len) {
+static const unsigned char *S_lookup_entity(const unsigned char *s, int len) {
   return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len);
 }
 
