diff --git a/buffer.c b/buffer.c
index 822d97a5..646763b4 100644
--- a/buffer.c
+++ b/buffer.c
@@ -3070,7 +3070,7 @@ evbuffer_file_segment_materialize(struct evbuffer_file_segment *seg)
 			offset_leftover = offset % page_size;
 			offset_rounded = offset - offset_leftover;
 		}
-		mapped = mmap(NULL, length + offset_leftover,
+		mapped = mmap64(NULL, length + offset_leftover,
 		    PROT_READ,
 #ifdef MAP_NOCACHE
 		    MAP_NOCACHE | /* ??? */
diff --git a/bufferevent_mbedtls.c b/bufferevent_mbedtls.c
index f42da2ae..61f448a2 100644
--- a/bufferevent_mbedtls.c
+++ b/bufferevent_mbedtls.c
@@ -57,8 +57,10 @@ static void
 mbedtls_context_free(void *ssl, int flags)
 {
 	struct mbedtls_context *ctx = ssl;
-	if (flags & BEV_OPT_CLOSE_ON_FREE)
+	if (flags & BEV_OPT_CLOSE_ON_FREE) {
 		mbedtls_ssl_free(ctx->ssl);
+		free(ctx->ssl);
+	}
 	mm_free(ctx);
 }
 static int