Correct previous checkin, probably a svn merge issue.
Now the code is similar to the one in trunk/.

The behavior was funny:
   >>> print (), repr(())
   (), ()
   >>> print (), repr(())
   (), (...)
diff --git a/Objects/tupleobject.c b/Objects/tupleobject.c
index 56a1024..b68c80e 100644
--- a/Objects/tupleobject.c
+++ b/Objects/tupleobject.c
@@ -208,6 +208,10 @@
 	PyObject *s, *temp;
 	PyObject *pieces, *result = NULL;
 
+	n = v->ob_size;
+	if (n == 0)
+		return PyString_FromString("()");
+
 	/* While not mutable, it is still possible to end up with a cycle in a
 	   tuple through an object that stores itself within a tuple (and thus
 	   infinitely asks for the repr of itself). This should only be
@@ -217,10 +221,6 @@
 		return i > 0 ? PyString_FromString("(...)") : NULL;
 	}
 
-	n = v->ob_size;
-	if (n == 0)
-		return PyString_FromString("()");
-
 	pieces = PyTuple_New(n);
 	if (pieces == NULL)
 		return NULL;