Make generator repr consistent with function and code object repr.
diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py
index 7be0a90..3702abc 100644
--- a/Lib/test/test_generators.py
+++ b/Lib/test/test_generators.py
@@ -927,7 +927,7 @@
 >>> g.__name__
 'f'
 >>> repr(g)  # doctest: +ELLIPSIS
-'<f generator object at ...>'
+'<generator object f at ...>'
 """
 
 # conjoin is a simple backtracking generator, named in honor of Icon's
diff --git a/Lib/test/test_genexps.py b/Lib/test/test_genexps.py
index ab9f85d..a86f12f 100644
--- a/Lib/test/test_genexps.py
+++ b/Lib/test/test_genexps.py
@@ -92,7 +92,7 @@
 Verify that parenthesis are required when used as a keyword argument value
 
     >>> dict(a = (i for i in xrange(10))) #doctest: +ELLIPSIS
-    {'a': <<genexpr> generator object at ...>}
+    {'a': <generator object <genexpr> at ...>}
 
 Verify early binding for the outermost for-expression
 
diff --git a/Objects/genobject.c b/Objects/genobject.c
index 3cd911d..d2ef508 100644
--- a/Objects/genobject.c
+++ b/Objects/genobject.c
@@ -288,7 +288,7 @@
 	code_name = PyString_AsString(((PyCodeObject *)gen->gi_code)->co_name);
 	if (code_name == NULL)
 		return NULL;
-	return PyString_FromFormat("<%.200s generator object at %p>",
+	return PyString_FromFormat("<generator object %.200s at %p>",
 				   code_name, gen);
 }