_PyLong_Copy():  was creating a copy of the absolute value, but should
copy the sign too.  Added a test to test_descr to ensure that it does.

Bugfix candidate.
diff --git a/Lib/test/test_descr.py b/Lib/test/test_descr.py
index e667efb..de9bba1 100644
--- a/Lib/test/test_descr.py
+++ b/Lib/test/test_descr.py
@@ -1751,6 +1751,7 @@
     # Check that negative clones don't segfault
     a = longclone(-1)
     vereq(a.__dict__, {})
+    vereq(long(a), -1)  # verify PyNumber_Long() copies the sign bit
 
     class precfloat(float):
         __slots__ = ['prec']
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 5b7a00a..f3e7df7 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -63,7 +63,7 @@
 		i = -(i);
 	result = _PyLong_New(i);
 	if (result != NULL) {
-		result->ob_size = i;
+		result->ob_size = src->ob_size;
 		while (--i >= 0)
 			result->ob_digit[i] = src->ob_digit[i];
 	}