diff --git a/Cython/Compiler/ParseTreeTransforms.py b/Cython/Compiler/ParseTreeTransforms.py
index 36200d7414c8ffe72c07f014add32d70f22eb4a8..ccc3129ea6d66baf03aeb35410fb05dc2512be98 100644
--- a/Cython/Compiler/ParseTreeTransforms.py
+++ b/Cython/Compiler/ParseTreeTransforms.py
@@ -677,7 +677,10 @@ property NAME:
         return None
     
     def visit_CEnumDefNode(self, node):
-        return None
+        if node.visibility == 'public':
+            return node
+        else:
+            return None
 
     def visit_CStructOrUnionDefNode(self, node):
         return None
diff --git a/tests/run/public_enum.pyx b/tests/run/public_enum.pyx
new file mode 100644
index 0000000000000000000000000000000000000000..f437aab37395713c9ccf83fef772580893412dd7
--- /dev/null
+++ b/tests/run/public_enum.pyx
@@ -0,0 +1,7 @@
+__doc__ = u"""
+>>> BAR
+3
+"""
+
+cdef public enum FOO:
+    BAR = 3