diff --git a/staff_toolbar/items.py b/staff_toolbar/items.py
index <HASH>..<HASH> 100644
--- a/staff_toolbar/items.py
+++ b/staff_toolbar/items.py
@@ -48,14 +48,9 @@ class Group(object):
     title = None
 
     def __init__(self, *children, **kwargs):
-        self.children = children
+        self.children = list(children)
         self.title = kwargs.get('title', self.title)
 
-        # self-check
-        for child in children:
-            if isinstance(child, basestring) or not callable(child):
-                raise ImproperlyConfigured("The toolbar item '{0}' is not a callable".format(child))
-
     def __call__(self, request, context):
         """
         Render the group
@@ -67,8 +62,14 @@ class Group(object):
         """
         Get all rows as HTML
         """
+        from staff_toolbar.loading import load_toolbar_item
         rows = []
-        for hook in self.children:
+        for i, hook in enumerate(self.children):
+            # Allow dotted paths in groups too, loads on demand (get import errors otherwise).
+            if isinstance(hook, (basestring, tuple, list)):
+                hook = load_toolbar_item(hook)
+                self.children[i] = hook
+
             html = hook(request, context)
             if not html:
                 continue
Allow dotted paths in Groups too.

Tried to protect against strings, but that gave really unexplainable
errors messages, as it would state that "staff_toolbar.items.Foo"
would not be a callable which is confusing.