diff --git a/lib/reinteract/custom_result.py b/lib/reinteract/custom_result.py
index 707f57d..696868f 100644
--- a/lib/reinteract/custom_result.py
+++ b/lib/reinteract/custom_result.py
@@ -11,6 +11,48 @@ import gtk
 class CustomResult(object):
     def create_widget(self):
         raise NotImplementedError()
+        
+class CustomResultList(CustomResult):
+    
+    def __init__(self, results):
+        self.results = results
+    
+    def create_widget(self):
+        self.widgets = [res.create_widget() for res in self.results]
+        ntbk = gtk.Notebook()
+        # Notebook tabs have problems unless in EventBox...
+        self.notebook = gtk.EventBox()
+        self.notebook.add(ntbk)
+        self.vertbox = gtk.VBox(spacing=5)
+        for widget in self.widgets:
+            #self.notebook.append_page(widget)
+            self.vertbox.pack_start(widget, False, False) # expand, fill
+        
+        self.container = gtk.HBox()
+        expander = gtk.Expander()
+        expander.set_expanded(True)
+        expander.connect("notify::expanded", self.toggle)
+        self.container.pack_start(expander, False, False)
+        
+        self.container.pack_end(self.vertbox, False, False)
+        self.container.show_all()
+        self.notebook.show_all()
+
+        return self.container
+    
+    def toggle(self, expander, data=None):
+        if expander.get_expanded():
+            self.container.remove(self.notebook)
+            self.container.pack_end(self.vertbox, False, False)
+            for widget in self.widgets:
+                self.notebook.child.remove(widget)
+                self.vertbox.pack_start(widget, False, False)
+        else:
+            self.container.remove(self.vertbox)
+            self.container.pack_end(self.notebook, False, False)
+            for n, widget in enumerate(self.widgets):
+                self.vertbox.remove(widget)
+                self.notebook.child.append_page(widget, gtk.Label(" %i "%n))
 
 def show_menu(widget, event, save_callback=None):
     """Convenience function to create a right-click menu with a Save As option"""
diff --git a/lib/reinteract/statement.py b/lib/reinteract/statement.py
index 598f8e9..30c7038 100755
--- a/lib/reinteract/statement.py
+++ b/lib/reinteract/statement.py
@@ -11,7 +11,7 @@ import pkgutil
 import traceback
 import sys
 
-from custom_result import CustomResult
+from custom_result import CustomResult, CustomResultList
 import notebook
 from notebook import HelpResult
 from rewrite import Rewriter, UnsupportedSyntaxError
@@ -140,6 +140,9 @@ class Statement:
                 return
             elif isinstance(args[0], CustomResult) or isinstance(args[0], HelpResult):
                 self.results.append(args[0])
+            elif isinstance(args[0], (list, tuple)) and \
+                    all(isinstance(a, CustomResult) for a in args[0]):
+                self.results.append(CustomResultList(args[0]))
             else:
                 self.results.append(repr(args[0]))
                 self.result_scope['_'] = args[0]
