diff --git a/liblog/fake_writer.c b/liblog/fake_writer.c
index c280e3f..969661a 100644
--- a/liblog/fake_writer.c
+++ b/liblog/fake_writer.c
@@ -34,7 +34,7 @@
 
 LIBLOG_HIDDEN struct android_log_transport_write fakeLoggerWrite = {
   .node = { &fakeLoggerWrite.node, &fakeLoggerWrite.node },
-  .context.private = &logFds,
+  .context.priv = &logFds,
   .name = "fake",
   .available = NULL,
   .open = fakeOpen,
diff --git a/liblog/local_logger.c b/liblog/local_logger.c
index 758905f..9906eb7 100644
--- a/liblog/local_logger.c
+++ b/liblog/local_logger.c
@@ -47,7 +47,7 @@
 
 LIBLOG_HIDDEN struct android_log_transport_write localLoggerWrite = {
   .node = { &localLoggerWrite.node, &localLoggerWrite.node },
-  .context.private = NULL,
+  .context.priv = NULL,
   .name = "local",
   .available = writeToLocalAvailable,
   .open = writeToLocalInit,
diff --git a/liblog/logger.h b/liblog/logger.h
index 86c75f8..1a39ec0 100644
--- a/liblog/logger.h
+++ b/liblog/logger.h
@@ -30,7 +30,7 @@
 
 /* Union, sock or fd of zero is not allowed unless static initialized */
 union android_log_context {
-  void* private;
+  void* priv;
   atomic_int sock;
   atomic_int fd;
   struct listnode* node;
diff --git a/liblog/stderr_write.c b/liblog/stderr_write.c
index 291ce93..dbe5309 100644
--- a/liblog/stderr_write.c
+++ b/liblog/stderr_write.c
@@ -57,7 +57,7 @@
 
 LIBLOG_HIDDEN struct android_log_transport_write stderrLoggerWrite = {
   .node = { &stderrLoggerWrite.node, &stderrLoggerWrite.node },
-  .context.private = NULL,
+  .context.priv = NULL,
   .name = "stderr",
   .available = stderrAvailable,
   .open = stderrOpen,
@@ -74,7 +74,7 @@
     return -EBADF;
   }
 
-  if (stderrLoggerWrite.context.private) {
+  if (stderrLoggerWrite.context.priv) {
     return fileno(stderr);
   }
 
@@ -117,16 +117,16 @@
   if (envStr) {
     android_log_addFilterString(ctx->logformat, envStr);
   }
-  stderrLoggerWrite.context.private = ctx;
+  stderrLoggerWrite.context.priv = ctx;
 
   return fileno(stderr);
 }
 
 static void stderrClose() {
-  struct stderrContext* ctx = stderrLoggerWrite.context.private;
+  struct stderrContext* ctx = stderrLoggerWrite.context.priv;
 
   if (ctx) {
-    stderrLoggerWrite.context.private = NULL;
+    stderrLoggerWrite.context.priv = NULL;
     if (ctx->logformat) {
       android_log_format_free(ctx->logformat);
       ctx->logformat = NULL;
@@ -154,7 +154,7 @@
   char binaryMsgBuf[1024];
   int err;
   size_t i;
-  struct stderrContext* ctx = stderrLoggerWrite.context.private;
+  struct stderrContext* ctx = stderrLoggerWrite.context.priv;
 
   if (!ctx) return -EBADF;
   if (!vec || !nr) return -EINVAL;
