diff --git a/core/lib/Drupal/Core/Datetime/Plugin/README.txt b/core/lib/Drupal/Core/Datetime/Plugin/README.txt
deleted file mode 100644
index f761e01..0000000
--- a/core/lib/Drupal/Core/Datetime/Plugin/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-@todo This must be here because DrupalKernel will only allow namespaces to
-  provide plugins if there is a Plugin subdirectory, and git does not allow
-  empty subdirectories. This file should be removed once
-  https://www.drupal.org/node/2309889 is fixed.
diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php
index c1069a1..3c09c39 100644
--- a/core/lib/Drupal/Core/DrupalKernel.php
+++ b/core/lib/Drupal/Core/DrupalKernel.php
@@ -1016,13 +1016,22 @@ protected function compileContainer() {
 
     // Get a list of namespaces and put it onto the container.
     $namespaces = $this->getModuleNamespacesPsr4($this->getModuleFileNames());
-    // Add all components in \Drupal\Core and \Drupal\Component that have a
-    // Plugin directory.
+    // Add all components in \Drupal\Core and \Drupal\Component that have one of
+    // the following directories:
+    // - Element
+    // - Entity
+    // - Plugin
     foreach (array('Core', 'Component') as $parent_directory) {
       $path = DRUPAL_ROOT . '/core/lib/Drupal/' . $parent_directory;
       $parent_namespace = 'Drupal\\' . $parent_directory;
       foreach (new \DirectoryIterator($path) as $component) {
-        if (!$component->isDot() && $component->isDir() && is_dir($component->getPathname() . '/Plugin')) {
+        /** @var $component \DirectoryIterator */
+        $pathname = $component->getPathname();
+        if (!$component->isDot() && $component->isDir() && (
+          is_dir($pathname . '/Plugin') ||
+          is_dir($pathname . '/Entity') ||
+          is_dir($pathname . '/Element')
+        )) {
           $namespaces[$parent_namespace . '\\' . $component->getFilename()] = $path . '/' . $component->getFilename();
         }
       }
diff --git a/core/lib/Drupal/Core/Render/Plugin/README.txt b/core/lib/Drupal/Core/Render/Plugin/README.txt
deleted file mode 100644
index f761e01..0000000
--- a/core/lib/Drupal/Core/Render/Plugin/README.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-@todo This must be here because DrupalKernel will only allow namespaces to
-  provide plugins if there is a Plugin subdirectory, and git does not allow
-  empty subdirectories. This file should be removed once
-  https://www.drupal.org/node/2309889 is fixed.
