diff --git a/Cython/Compiler/Parsing.py b/Cython/Compiler/Parsing.py
index a17aae3328036f6785668b15e3eac87fc05a3ce4..779c3b4906b71926c01ba87e41cddd1f56701f0a 100644
--- a/Cython/Compiler/Parsing.py
+++ b/Cython/Compiler/Parsing.py
@@ -691,7 +691,9 @@ def p_name(s, name):
 
 def wrap_compile_time_constant(pos, value):
     rep = repr(value)
-    if isinstance(value, bool):
+    if value is None:
+        return ExprNodes.NoneNode(pos)
+    elif isinstance(value, bool):
         return ExprNodes.BoolNode(pos, value=value)
     elif isinstance(value, int):
         return ExprNodes.IntNode(pos, value=rep)
diff --git a/tests/errors/nonconst_def_tuple.pyx b/tests/errors/nonconst_def_tuple.pyx
index 89d6aeb130a3e5b61c6c6f8cf4d4969abbdd7e3b..9f247eeaf283e551ba35a30ee5406d6a4e099946 100644
--- a/tests/errors/nonconst_def_tuple.pyx
+++ b/tests/errors/nonconst_def_tuple.pyx
@@ -8,6 +8,5 @@ x = t_non_const
 
 _ERRORS = u"""
 5:32: Error in compile-time expression: IndexError: tuple index out of range
-7:15: Invalid type for compile-time constant: None (type NoneType)
 7:15: Invalid type for compile-time constant: [1, 2, 3] (type list)
 """
diff --git a/tests/run/ct_DEF.pyx b/tests/run/ct_DEF.pyx
index 485f3ef421680b29f36b61831ca0db362d37c1c0..3ca0298d95af9e13c4501dc6856969d25e4ec7d8 100644
--- a/tests/run/ct_DEF.pyx
+++ b/tests/run/ct_DEF.pyx
@@ -13,6 +13,7 @@ if sys.version_info[0] < 3:
 
 DEF TUPLE = (1, 2, u"buckle my shoe")
 DEF TRUE_FALSE = (True, False)
+DEF NONE = None
 
 DEF CHAR = c'x'
 DEF INT0 = -1
@@ -156,3 +157,9 @@ def expression():
     """
     cdef int i = EXPRESSION
     return i
+
+def none():
+    """
+    >>> none()
+    """
+    return NONE