diff --git a/src/core/surface/channel_create.c b/src/core/surface/channel_create.c
index 49083f0870204a020be8c513990ad931eb0bc397..b21f89d00c8296cccb7bab225ca8ca046a4af4b7 100644
--- a/src/core/surface/channel_create.c
+++ b/src/core/surface/channel_create.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <grpc/census.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/slice.h>
 #include <grpc/support/slice_buffer.h>
@@ -200,7 +201,7 @@ grpc_channel *grpc_insecure_channel_create(const char *target,
       "grpc_insecure_channel_create(target=%p, args=%p, reserved=%p)", 3,
       (target, args, reserved));
   GPR_ASSERT(!reserved);
-  if (grpc_channel_args_is_census_enabled(args)) {
+  if (grpc_channel_args_is_census_enabled(args) || census_enabled()) {
     filters[n++] = &grpc_client_census_filter;
   }
   filters[n++] = &grpc_compress_filter;
diff --git a/src/core/surface/secure_channel_create.c b/src/core/surface/secure_channel_create.c
index 552a570713d4c4350f58be74eb634a0af198daee..506f5bbe655985c1eace0ecfb40c49cb1a6894a8 100644
--- a/src/core/surface/secure_channel_create.c
+++ b/src/core/surface/secure_channel_create.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,6 +36,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include <grpc/census.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/slice.h>
 #include <grpc/support/slice_buffer.h>
@@ -295,7 +296,7 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds,
   args_copy = grpc_channel_args_copy_and_add(
       new_args_from_connector != NULL ? new_args_from_connector : args,
       &connector_arg, 1);
-  if (grpc_channel_args_is_census_enabled(args)) {
+  if (grpc_channel_args_is_census_enabled(args) || census_enabled()) {
     filters[n++] = &grpc_client_census_filter;
   }
   filters[n++] = &grpc_compress_filter;
diff --git a/src/core/surface/server.c b/src/core/surface/server.c
index 43f32a06b80f1df521b4829f52278f73b45bbcc3..0802965d38d3bfaa2df05a1ecbf8bcaa169d87c2 100644
--- a/src/core/surface/server.c
+++ b/src/core/surface/server.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff --git a/src/core/surface/server_create.c b/src/core/surface/server_create.c
index 79cc3c3fc6713159d89cb918230f5c42c735c92b..5e37e80948e4b05032789ff006e8acd2a4fede68 100644
--- a/src/core/surface/server_create.c
+++ b/src/core/surface/server_create.c
@@ -1,6 +1,6 @@
 /*
  *
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -40,7 +40,7 @@
 #include "src/core/surface/server.h"
 
 grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
-  const grpc_channel_filter *filters[2];
+  const grpc_channel_filter *filters[3];
   size_t num_filters = 0;
   filters[num_filters++] = &grpc_compress_filter;
   GRPC_API_TRACE("grpc_server_create(%p, %p)", 2, (args, reserved));