Index: twisted/test/test_reflect.py
===================================================================
--- twisted/test/test_reflect.py	(revision 34062)
+++ twisted/test/test_reflect.py	(working copy)
@@ -532,26 +532,6 @@
         reflect.safe_repr(X())
 
 
-    def test_unsignedID(self):
-        """
-        L{unsignedID} is used to print ID of the object in case of error, not
-        standard ID value which can be negative.
-        """
-        class X(BTBase):
-            breakRepr = True
-
-        ids = {X: 100}
-        def fakeID(obj):
-            try:
-                return ids[obj]
-            except (TypeError, KeyError):
-                return id(obj)
-        self.addCleanup(util.setIDFunction, util.setIDFunction(fakeID))
-
-        xRepr = reflect.safe_repr(X)
-        self.assertIn("0x64", xRepr)
-
-
     def test_brokenClassStr(self):
         class X(BTBase):
             breakStr = True
Index: twisted/test/test_defer.py
===================================================================
--- twisted/test/test_defer.py	(revision 34062)
+++ twisted/test/test_defer.py	(working copy)
@@ -11,7 +11,6 @@
 from twisted.internet import reactor, defer
 from twisted.internet.task import Clock
 from twisted.python import failure, log
-from twisted.python.util import unsignedID
 
 class GenericError(Exception):
     pass
@@ -872,7 +871,7 @@
         representation of the internal Python ID.
         """
         d = defer.Deferred()
-        address = hex(unsignedID(d))
+        address = hex(id(d))
         self.assertEqual(
             repr(d), '<Deferred at %s>' % (address,))
 
@@ -886,7 +885,7 @@
         d.callback('orange')
         self.assertEqual(
             repr(d), "<Deferred at %s current result: 'orange'>" % (
-                hex(unsignedID(d))))
+                hex(id(d))))
 
 
     def test_reprWithChaining(self):
@@ -900,7 +899,7 @@
         b.chainDeferred(a)
         self.assertEqual(
             repr(a), "<Deferred at %s waiting on Deferred at %s>" % (
-                hex(unsignedID(a)), hex(unsignedID(b))))
+                hex(id(a)), hex(id(b))))
 
 
     def test_boundedStackDepth(self):
Index: twisted/test/test_amp.py
===================================================================
--- twisted/test/test_amp.py	(revision 34062)
+++ twisted/test/test_amp.py	(working copy)
@@ -11,7 +11,6 @@
 
 from zope.interface.verify import verifyObject
 
-from twisted.python.util import setIDFunction
 from twisted.python import filepath
 from twisted.python.failure import Failure
 from twisted.protocols import amp
@@ -1357,13 +1356,10 @@
         otherProto = TestProto(None, "outgoing data")
         a = amp.AMP()
         a.innerProtocol = otherProto
-        def fakeID(obj):
-            return {a: 0x1234}.get(obj, id(obj))
-        self.addCleanup(setIDFunction, setIDFunction(fakeID))
 
         self.assertEqual(
-            repr(a), "<AMP inner <TestProto #%d> at 0x1234>" % (
-                otherProto.instanceId,))
+            repr(a), "<AMP inner <TestProto #%d> at %s>" % (
+                otherProto.instanceId,hex(id(a))))
 
 
     def test_innerProtocolNotInRepr(self):
@@ -1372,10 +1368,8 @@
         is set.
         """
         a = amp.AMP()
-        def fakeID(obj):
-            return {a: 0x4321}.get(obj, id(obj))
-        self.addCleanup(setIDFunction, setIDFunction(fakeID))
-        self.assertEqual(repr(a), "<AMP at 0x4321>")
+        
+        self.assertEqual(repr(a), "<AMP at %s>" % hex(id(a)))
 
 
     def test_simpleSSLRepr(self):
Index: twisted/python/util.py
===================================================================
--- twisted/python/util.py	(revision 34062)
+++ twisted/python/util.py	(working copy)
@@ -764,44 +764,38 @@
                 continue
             raise
 
-_idFunction = id
 
+
 def setIDFunction(idFunction):
     """
     Change the function used by L{unsignedID} to determine the integer id value
     of an object.  This is largely useful for testing to give L{unsignedID}
     deterministic, easily-controlled behavior.
 
+    Deprecated since Twisted 12.0.0
+
+
     @param idFunction: A function with the signature of L{id}.
     @return: The previous function being used by L{unsignedID}.
     """
-    global _idFunction
-    oldIDFunction = _idFunction
-    _idFunction = idFunction
-    return oldIDFunction
+    pass
 
 
-# A value about twice as large as any Python int, to which negative values
-# from id() will be added, moving them into a range which should begin just
-# above where positive values from id() leave off.
-_HUGEINT = (sys.maxint + 1L) * 2L
+
 def unsignedID(obj):
     """
     Return the id of an object as an unsigned number so that its hex
     representation makes sense.
 
-    This is mostly necessary in Python 2.4 which implements L{id} to sometimes
-    return a negative value.  Python 2.3 shares this behavior, but also
-    implements hex and the %x format specifier to represent negative values as
-    though they were positive ones, obscuring the behavior of L{id}.  Python
-    2.5's implementation of L{id} always returns positive values.
+    Deprecated since Twisted 12.0.0 , use built-in function id instead
     """
-    rval = _idFunction(obj)
-    if rval < 0:
-        rval += _HUGEINT
-    return rval
+    warnings.warn("twisted.python.util.unsignedID is deprecated since Twisted 12.0.0."
+                  "Use built-in function id instead.",
+                  category=DeprecationWarning, stacklevel=2)
+    return id(obj)
 
 
+
 def mergeFunctionMetadata(f, g):
     """
     Overwrite C{g}'s name and docstring with values from C{f}.  Update
@@ -978,6 +972,6 @@
     "getPassword", "println", "makeStatBar", "OrderedDict",
     "InsensitiveDict", "spewer", "searchupwards", "LineLog",
     "raises", "IntervalDifferential", "FancyStrMixin", "FancyEqMixin",
-    "switchUID", "SubclassableCStringIO", "unsignedID", "mergeFunctionMetadata",
+    "switchUID", "SubclassableCStringIO", "mergeFunctionMetadata",
     "nameToLabel", "uidFromString", "gidFromString", "runAsEffectiveUser",
 ]
Index: twisted/python/reflect.py
===================================================================
--- twisted/python/reflect.py	(revision 34062)
+++ twisted/python/reflect.py	(working copy)
@@ -29,7 +29,6 @@
 except ImportError:
     from StringIO import StringIO
 
-from twisted.python.util import unsignedID
 from twisted.python.deprecate import deprecated, deprecatedModuleAttribute
 from twisted.python.deprecate import _fullyQualifiedName as fullyQualifiedName
 from twisted.python.versions import Version
@@ -536,7 +535,7 @@
         try:
             return str(c)
         except:
-            return '<BROKEN CLASS AT 0x%x>' % unsignedID(c)
+            return '<BROKEN CLASS AT 0x%x>' % id(c)
 
 
 
@@ -552,7 +551,7 @@
         className = _determineClassName(o)
         tbValue = io.getvalue()
         return "<%s instance at 0x%x with %s error:\n %s>" % (
-            className, unsignedID(o), formatter.__name__, tbValue)
+            className, id(o), formatter.__name__, tbValue)
 
 
 
Index: twisted/python/test/test_util.py
===================================================================
--- twisted/python/test/test_util.py	(revision 34062)
+++ twisted/python/test/test_util.py	(working copy)
@@ -777,61 +777,6 @@
 
 
 
-class UnsignedIDTests(unittest.TestCase):
-    """
-    Tests for L{util.unsignedID} and L{util.setIDFunction}.
-    """
-    def setUp(self):
-        """
-        Save the value of L{util._idFunction} and arrange for it to be restored
-        after the test runs.
-        """
-        self.addCleanup(setattr, util, '_idFunction', util._idFunction)
-
-
-    def test_setIDFunction(self):
-        """
-        L{util.setIDFunction} returns the last value passed to it.
-        """
-        value = object()
-        previous = util.setIDFunction(value)
-        result = util.setIDFunction(previous)
-        self.assertIdentical(value, result)
-
-
-    def test_unsignedID(self):
-        """
-        L{util.unsignedID} uses the function passed to L{util.setIDFunction} to
-        determine the unique integer id of an object and then adjusts it to be
-        positive if necessary.
-        """
-        foo = object()
-        bar = object()
-
-        # A fake object identity mapping
-        objects = {foo: 17, bar: -73}
-        def fakeId(obj):
-            return objects[obj]
-
-        util.setIDFunction(fakeId)
-
-        self.assertEqual(util.unsignedID(foo), 17)
-        self.assertEqual(util.unsignedID(bar), (sys.maxint + 1) * 2 - 73)
-
-
-    def test_defaultIDFunction(self):
-        """
-        L{util.unsignedID} uses the built in L{id} by default.
-        """
-        obj = object()
-        idValue = id(obj)
-        if idValue < 0:
-            idValue += (sys.maxint + 1) * 2
-
-        self.assertEqual(util.unsignedID(obj), idValue)
-
-
-
 class InitGroupsTests(unittest.TestCase):
     """
     Tests for L{util.initgroups}.
Index: twisted/protocols/amp.py
===================================================================
--- twisted/protocols/amp.py	(revision 34062)
+++ twisted/protocols/amp.py	(working copy)
@@ -182,7 +182,6 @@
 from zope.interface import Interface, implements
 
 from twisted.python.compat import set
-from twisted.python.util import unsignedID
 from twisted.python.reflect import accumulateClassDict
 from twisted.python.failure import Failure
 from twisted.python import log, filepath
@@ -2274,7 +2273,7 @@
         else:
             innerRepr = ''
         return '<%s%s at 0x%x>' % (
-            self.__class__.__name__, innerRepr, unsignedID(self))
+            self.__class__.__name__, innerRepr, id(self))
 
 
     def makeConnection(self, transport):
Index: twisted/topfiles/5544.removal
===================================================================
--- twisted/topfiles/5544.removal	(revision 0)
+++ twisted/topfiles/5544.removal	(revision 0)
@@ -0,0 +1 @@
+twisted.python.util.unsignedID , deprecated for it can be replaced by built-in function "id" after Python 2.5.
Index: twisted/internet/defer.py
===================================================================
--- twisted/internet/defer.py	(revision 34062)
+++ twisted/internet/defer.py	(working copy)
@@ -23,7 +23,7 @@
 
 # Twisted imports
 from twisted.python import log, failure, lockfile
-from twisted.python.util import unsignedID, mergeFunctionMetadata
+from twisted.python.util import mergeFunctionMetadata
 
 
 
@@ -607,9 +607,9 @@
         """
         cname = self.__class__.__name__
         result = getattr(self, 'result', _NO_RESULT)
-        myID = hex(unsignedID(self))
+        myID = hex(id(self))
         if self._chainedTo is not None:
-            result = ' waiting on Deferred at %s' % (hex(unsignedID(self._chainedTo)),)
+            result = ' waiting on Deferred at %s' % (hex(id(self._chainedTo)),)
         elif result is _NO_RESULT:
             result = ''
         else:
Index: twisted/internet/tcp.py
===================================================================
--- twisted/internet/tcp.py	(revision 34062)
+++ twisted/internet/tcp.py	(working copy)
@@ -92,7 +92,6 @@
 from twisted.internet import base, address, fdesc
 from twisted.internet.task import deferLater
 from twisted.python import log, failure, reflect
-from twisted.python.util import unsignedID
 from twisted.internet.error import CannotListenError
 from twisted.internet import abstract, main, interfaces, error
 
@@ -709,7 +708,7 @@
 
 
     def __repr__(self):
-        s = '<%s to %s at %x>' % (self.__class__, self.addr, unsignedID(self))
+        s = '<%s to %s at %x>' % (self.__class__, self.addr, id(self))
         return s
 
 
Index: twisted/internet/test/test_base.py
===================================================================
--- twisted/internet/test/test_base.py	(revision 34062)
+++ twisted/internet/test/test_base.py	(working copy)
@@ -11,7 +11,6 @@
 from zope.interface import implements
 
 from twisted.python.threadpool import ThreadPool
-from twisted.python.util import setIDFunction
 from twisted.internet.interfaces import IReactorTime, IReactorThreads
 from twisted.internet.error import DNSLookupError
 from twisted.internet.base import ThreadedResolver, DelayedCall
@@ -188,16 +187,10 @@
         def nothing():
             pass
         dc = DelayedCall(12, nothing, (3, ), {"A": 5}, None, None, lambda: 1.5)
-        ids = {dc: 200}
-        def fakeID(obj):
-            try:
-                return ids[obj]
-            except (TypeError, KeyError):
-                return id(obj)
-        self.addCleanup(setIDFunction, setIDFunction(fakeID))
+        
         self.assertEqual(
             str(dc),
-            "<DelayedCall 0xc8 [10.5s] called=0 cancelled=0 nothing(3, A=5)>")
+            "<DelayedCall %s [10.5s] called=0 cancelled=0 nothing(3, A=5)>" % hex(id(dc)))
 
 
     def test_lt(self):
Index: twisted/internet/base.py
===================================================================
--- twisted/internet/base.py	(revision 34062)
+++ twisted/internet/base.py	(working copy)
@@ -16,7 +16,6 @@
 import traceback
 
 from twisted.python.compat import set
-from twisted.python.util import unsignedID
 from twisted.internet.interfaces import IReactorCore, IReactorTime, IReactorThreads
 from twisted.internet.interfaces import IResolverSimple, IReactorPluggableResolver
 from twisted.internet.interfaces import IConnector, IDelayedCall
@@ -186,7 +185,7 @@
 
         now = self.seconds()
         L = ["<DelayedCall 0x%x [%ss] called=%s cancelled=%s" % (
-                unsignedID(self), self.time - now, self.called,
+                id(self), self.time - now, self.called,
                 self.cancelled)]
         if func is not None:
             L.extend((" ", func, "("))
