diff --git a/lldb/scripts/Python/python-extensions.swig b/lldb/scripts/Python/python-extensions.swig
index 1cf6519..49172b3 100644
--- a/lldb/scripts/Python/python-extensions.swig
+++ b/lldb/scripts/Python/python-extensions.swig
@@ -324,6 +324,28 @@
                 return Py_None;
         }
 }
+%extend lldb::SBValueList {
+        PyObject *lldb::SBValueList::__repr__ (){
+                lldb::SBStream description;
+                const size_t n = $self->GetSize();
+                if (n)
+                {
+                    for (size_t i=0; i<n; ++i)
+                        $self->GetValueAtIndex(i).GetDescription(description);
+                }
+                else
+                {
+                    description.Printf("<empty> lldb.SBValueList()");
+                }
+                const char *desc = description.GetData();
+                size_t desc_len = description.GetSize();
+                if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r'))
+                    --desc_len;
+                if (desc_len > 0)
+                    return PyString_FromStringAndSize (desc, desc_len);
+                return Py_None;
+        }
+}
 %extend lldb::SBWatchpoint {
         PyObject *lldb::SBWatchpoint::__repr__ (){
                 lldb::SBStream description;
