+    # Store the object's dir.
+    object_dir = dir(object)
+    for (str_obj, technique, count), attrlist in attrdict.items():
+        # This complexity is necessary to avoid accessing all the
+        # attributes of the object.  This is very handy for objects
+        # whose attributes are lazily evaluated.
+        if str(object) == str_obj and technique == 'dir':
+            attributes += attrlist
+        else:
+            attributes += [attr for attr in attrlist \
+                           if attr not in object_dir and hasattr(object, attr)]
+