diff --git a/collective/elephantvocabulary/vocabulary.py b/collective/elephantvocabulary/vocabulary.py
index <HASH>..<HASH> 100644
--- a/collective/elephantvocabulary/vocabulary.py
+++ b/collective/elephantvocabulary/vocabulary.py
@@ -29,10 +29,13 @@ class VocabularyFactory(object):
         self.hidden_terms = hidden_terms
         self.hidden_terms_from_registry = hidden_terms_from_registry
         self.wrapper_class = wrapper_class
+        self._plone_registry = None
 
-        self.plone_registry = None
-        if PLONE_REGISTRY is True:
-            self.plone_registry = getUtility(IRegistry)
+    @property
+    def plone_registry(self):
+        if PLONE_REGISTRY is True and not self._plone_registry:
+            self._plone_registry = getUtility(IRegistry)
+        return self._plone_registry
 
     def __call__(self, context):
registry should be not be loaded at __init__ time