Index: tools/gdb/python/classic.py
===================================================================
--- tools/gdb/python/classic.py	(revision e60a5eec0b1e8b16d984e4baf7dccb3323b88928)
+++ tools/gdb/python/classic.py	(revision 6d89e3c34e68e61013abb39ff058bc5715eaa455)
@@ -109,7 +109,6 @@
     "Print a classic semaphore."
 
-    def __init__(self, id):
-        self.id = id;
-        self.object = objects.information.object(self.id).dereference()
+    def __init__(self, obj):
+        self.object = obj
         self.object_control = objects.control(self.object['Object'])
         self.attr = attribute(self.object['attribute_set'], 'semaphore')
@@ -150,8 +149,8 @@
     "Print a classic task"
 
-    def __init__(self, id):
-        self.id = id;
+    def __init__(self, obj):
+        self.object = obj
         self.task = \
-            threads.control(objects.information.object(self.id).dereference())
+            threads.control(self.object)
         self.wait_info = self.task.wait_info()
 
@@ -168,7 +167,6 @@
     "Print classic messege queue"
 
-    def __init__(self,id):
-        self.id = id
-        self.object = objects.information.object(self.id).dereference()
+    def __init__(self,obj):
+        self.object = obj
         self.object_control = objects.control(self.object['Object'])
         self.attr = attribute(self.object['attribute_set'], \
@@ -188,7 +186,6 @@
     '''Print a classic timer'''
 
-    def __init__(self, id):
-        self.id = id
-        self.object = objects.information.object(self.id).dereference()
+    def __init__(self, obj):
+        self.object = obj
         self.object_control = objects.control(self.object['Object'])
         self.watchdog = watchdog.control(self.object['Ticker'])
@@ -201,7 +198,6 @@
     ''' Print a rtems partition '''
 
-    def __init__(self, id):
-        self.id = id
-        self.object = objects.information.object(self.id).dereference()
+    def __init__(self, obj):
+        self.object = obj
         self.object_control = objects.control(self.object['Object'])
         self.attr = attribute(self.object['attribute_set'], 'partition')
@@ -222,7 +218,6 @@
     "prints a classic region"
 
-    def __init__(self,id):
-        self.id = id
-        self.object = objects.information.object(self.id).dereference()
+    def __init__(self,obj):
+        self.object = obj
         self.object_control = objects.control(self.object['Object'])
         self.attr = attribute(self.object['attribute_set'], 'region')
@@ -240,7 +235,6 @@
     '''classic barrier abstraction'''
 
-    def __init__(self,id):
-        self.id = id
-        self.object = objects.information.object(self.id).dereference()
+    def __init__(self,obj):
+        self.object = obj
         self.object_control = objects.control(self.object['Object'])
         self.attr = attribute(self.object['attribute_set'],'barrier')
Index: tools/gdb/python/rtems.py
===================================================================
--- tools/gdb/python/rtems.py	(revision e60a5eec0b1e8b16d984e4baf7dccb3323b88928)
+++ tools/gdb/python/rtems.py	(revision 6d89e3c34e68e61013abb39ff058bc5715eaa455)
@@ -76,11 +76,11 @@
 
     objects = {
-        'classic/semaphores': lambda id: classic.semaphore(id),
-        'classic/tasks': lambda id: classic.task(id),
-        'classic/message_queues': lambda id: classic.message_queue(id),
-        'classic/timers' : lambda id: classic.timer(id),
-        'classic/partitions' : lambda id: classic.partition(id),
-        'classic/regions' : lambda id: classic.region(id),
-        'classic/barriers' : lambda id: classic.barrier(id)
+        'classic/semaphores': lambda obj: classic.semaphore(obj),
+        'classic/tasks': lambda obj: classic.task(obj),
+        'classic/message_queues': lambda obj: classic.message_queue(obj),
+        'classic/timers' : lambda obj: classic.timer(obj),
+        'classic/partitions' : lambda obj: classic.partition(obj),
+        'classic/regions' : lambda obj: classic.region(obj),
+        'classic/barriers' : lambda obj: classic.barrier(obj)
         }
 
@@ -104,6 +104,8 @@
                 (id.api(), id._class(), id.node(), id.index(), id.value())
             objectname = id.api() + '/' + id._class()
+
+            obj = objects.information.object(id).dereference()
             if objectname in self.objects:
-                object = self.objects[objectname](id)
+                object = self.objects[objectname](obj)
                 object.show(from_tty)
         objects.information.invalidate()
