diff --git a/modules/ctools_block/src/Plugin/Block/EntityField.php b/modules/ctools_block/src/Plugin/Block/EntityField.php
index 1120f09..91c5d8f 100644
--- a/modules/ctools_block/src/Plugin/Block/EntityField.php
+++ b/modules/ctools_block/src/Plugin/Block/EntityField.php
@@ -19,6 +19,7 @@ use Drupal\Core\Field\FormatterPluginManager;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Plugin\ContextAwarePluginInterface;
+use Drupal\Core\Render\Element;
 use Drupal\Core\Session\AccountInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -162,10 +163,20 @@ class EntityField extends BlockBase implements ContextAwarePluginInterface, Cont
     $access = $entity->access('view', $account, TRUE);
     // Make sure we have access to the entity.
     if ($access->isAllowed()) {
-      // Check that the entity in question has this field and a value.
-      if ($entity instanceof FieldableEntityInterface && $entity->hasField($this->fieldName) && $entity->{$this->fieldName}->getValue()) {
+      // Check that the entity in question has this field.
+      if ($entity instanceof FieldableEntityInterface && $entity->hasField($this->fieldName)) {
+        // Check field access.
         $access_handler = $this->entityTypeManager->getAccessControlHandler($this->entityTypeId);
-        return $access_handler->fieldAccess('view', $this->getFieldDefinition(), $account, NULL, TRUE);
+        if ($access_handler->fieldAccess('view', $this->getFieldDefinition(), $account, NULL, TRUE)->isAllowed()) {
+          // Build field.
+          $field = $entity->{$this->fieldName};
+          $display_settings = $this->getConfiguration()['formatter'];
+          $build = $field->view($display_settings);
+          // If there are actual renderable children, grant access to block.
+          if (Element::children($build)) {
+            return AccessResult::allowed();
+          }
+        }
       }
       // Entity doesn't have this field, so access is denied.
       return AccessResult::forbidden();
