diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py
index 1b95bb9..036349b 100644
--- a/Lib/dataclasses.py
+++ b/Lib/dataclasses.py
@@ -413,10 +413,8 @@ def _create_fn(name, args, body, *, globals=None, locals=None,
 
     ns = {}
     exec(txt, globals, ns)
-    func = ns['__create_fn__'](**locals)
-    for arg, annotation in func.__annotations__.copy().items():
-        func.__annotations__[arg] = locals[annotation]
-    return func
+    return ns['__create_fn__'](**locals)
+
 
 def _field_assign(frozen, name, value, self_name):
     # If we're a frozen class, then assign to our fields in __init__
@@ -667,11 +665,6 @@ def _is_type(annotation, cls, a_module, a_type, is_type_predicate):
     # a eval() penalty for every single field of every dataclass
     # that's defined.  It was judged not worth it.
 
-    # Strip away the extra quotes as a result of double-stringifying when the
-    # 'annotations' feature became default.
-    if annotation.startswith(("'", '"')) and annotation.endswith(("'", '"')):
-        annotation = annotation[1:-1]
-
     match = _MODULE_IDENTIFIER_RE.match(annotation)
     if match:
         ns = None
@@ -1020,7 +1013,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen,
     if not getattr(cls, '__doc__'):
         # Create a class doc-string.
         cls.__doc__ = (cls.__name__ +
-                       str(inspect.signature(cls)).replace(' -> NoneType', ''))
+                       str(inspect.signature(cls)).replace(' -> None', ''))
 
     if match_args:
         _set_new_attribute(cls, '__match_args__',
