diff --git a/CHANGES.rst b/CHANGES.rst
index 9bd0e39..5845a28 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,7 +4,9 @@ Changelog
 3.0b6 (unreleased)
 ------------------
 
-- Nothing changed yet.
+- Fix regression in ``.DT_Util.InstanceDict`` which broke the acquisition
+  chain of the item it wraps.
+  (`#38 <https://github.com/zopefoundation/DocumentTemplate/issues/38>`_)
 
 
 3.0b5 (2018-10-05)
diff --git a/src/DocumentTemplate/_DocumentTemplate.py b/src/DocumentTemplate/_DocumentTemplate.py
index 950cb61..e985a6e 100644
--- a/src/DocumentTemplate/_DocumentTemplate.py
+++ b/src/DocumentTemplate/_DocumentTemplate.py
@@ -108,7 +108,6 @@ import sys
 import types
 
 from Acquisition import aq_base
-from Acquisition import aq_inner
 from ExtensionClass import Base
 
 from DocumentTemplate.html_quote import html_quote
@@ -267,7 +266,7 @@ def safe_callable(ob):
     return callable(ob)
 
 
-class InstanceDict(Base):
+class InstanceDict(object):
     """"""
 
     guarded_getattr = None
@@ -306,7 +305,7 @@ class InstanceDict(Base):
             get = getattr
 
         try:
-            result = get(aq_inner(self.inst), key)
+            result = get(self.inst, key)
         except AttributeError:
             raise KeyError(key)
 

diff --git a/src/DocumentTemplate/tests/test_DocumentTemplate.py b/src/DocumentTemplate/tests/test_DocumentTemplate.py
index 585f522..a58fc5f 100644
--- a/src/DocumentTemplate/tests/test_DocumentTemplate.py
+++ b/src/DocumentTemplate/tests/test_DocumentTemplate.py
@@ -1,4 +1,18 @@
 import unittest
+import Acquisition
+
+
+class Item(Acquisition.Implicit):
+    """Class modelling the here necessary parts of OFS.SimpleItem."""
+
+    def __init__(self, id):
+        self.id = id
+
+    def __repr__(self):
+        return '<Item id={0.id!r}>'.format(self)
+
+    def method1(self):
+        pass
 
 
 class InstanceDictTests(unittest.TestCase):
@@ -12,22 +26,23 @@ class InstanceDictTests(unittest.TestCase):
         # https://github.com/zopefoundation/Zope/issues/292
 
         from DocumentTemplate.DT_Util import InstanceDict
-        import Acquisition
-
-        class Item(Acquisition.Implicit):
-            """Class modelling the here necessary parts of OFS.SimpleItem."""
-
-            def __init__(self, id):
-                self.id = id
-
-            def __repr__(self):
-                return '<Item id={0.id!r}>'.format(self)
-
-            def method1(self):
-                pass
 
         inst = Item('a').__of__(Item('b'))
         i_dict = InstanceDict(inst, {}, getattr)
 
         for element in Acquisition.aq_chain(i_dict['method1'].__self__):
             self.assertNotIsInstance(element, InstanceDict)
+
+    def test_getitem_2(self):
+        # It does not break the acquisition chain of stored objects.
+
+        from DocumentTemplate.DT_Util import InstanceDict
+
+        main = Item('main')
+        main.sub = Item('sub')
+        side = Item('side')
+        side.here = Item('here')
+
+        path = side.here.__of__(main)
+        i_dict = InstanceDict(path, {}, getattr)
+        self.assertEqual(main.sub, i_dict['sub'])

Changed behavior in acquisition
When trying to port a Zope installation from Zope2 to Zope4, I encountered an error where I am not sure if the behavior is intended and was broken in Zope2 or if it is a regression.

I could reproduce the problematic behavior with DTML Method, DTML Document as well as Z SQL Methods.

The minimal setup looks like this:

    /
    /main/
    /main/test (DTML Method containing <dtml-var included>)
    /side/
    /side/included (p.e., Python Script returning 1)

Expected behavior, working with Zope2:
Either by calling `/side/main/test` or `/main/side/test`, the content or result of `included` is found in the acquisition context and included in `test`.

Found behavior in Zope4:
Only `/main/side/test` gives the expected result, `/side/main/test` gives the attached `KeyError`

[traceback.txt](https://github.com/zopefoundation/DocumentTemplate/files/2705889/traceback.txt)

src/DocumentTemplate/tests/test_DocumentTemplate.py::InstanceDictTests::test_getitem_2
src/DocumentTemplate/tests/test_DocumentTemplate.py::InstanceDictTests::test_getitem