diff --git a/librarytrader/library.py b/librarytrader/library.py
index 56acab78c3795265f70e5160095431fdc7a15a3f..1c2a902aa6441199909783675492b0f303b3b8cb 100644
--- a/librarytrader/library.py
+++ b/librarytrader/library.py
@@ -1008,6 +1008,14 @@ class Library:
                         self.exported_obj_names[name] = addr
                         self.object_ranges[addr] = max(self.object_ranges.get(addr, 0), size)
                 elif symbol_bind == 'STB_LOCAL':
+                    if symbol.name.startswith('_ZTV'):
+                        vtable_fn_offset = 8 if self.is_i386() else 16
+                        if vtable_fn_offset < symbol['st_size']:
+                            logging.debug('%s:%x is a vtable, adding additional'\
+                                          ' pointer with offset %d',
+                                          self.fullname, addr, vtable_fn_offset)
+                            vtable_start = addr + vtable_fn_offset
+                            self.object_to_objects[vtable_start].add(addr)
                     self.local_objs[addr].append(symbol.name)
                     # Names are not unique for local objects!
                     self.object_ranges[addr] = max(self.object_ranges.get(addr, 0), symbol['st_size'])