Index: scripts/Python/interface/SBDebugger.i
===================================================================
--- scripts/Python/interface/SBDebugger.i	(revision 152029)
+++ scripts/Python/interface/SBDebugger.i	(working copy)
@@ -122,6 +122,9 @@
     static lldb::SBDebugger
     Create(bool source_init_files);
 
+    static lldb::SBDebugger
+    Create(bool source_init_files, lldb::LogOutputCallback callback, void *baton);
+
     static void
     Destroy (lldb::SBDebugger &debugger);
 
===================================================================
--- scripts/Python/python-typemaps.swig	(revision 152029)
+++ scripts/Python/python-typemaps.swig	(working copy)
@@ -329,4 +329,24 @@
 
 %typemap(freearg) (uint32_t *versions) {
     free($1);
-}
\ No newline at end of file
+}
+
+// For Log::LogOutputCallback
+void LLDBSwigPythonCallPythonLogOutputCallback(const char *str, void *baton);
+%typemap(in) (lldb::LogOutputCallback callback, void *baton) {
+  if (!PyCallable_Check(reinterpret_cast<PyObject*>($input))) {
+    PyErr_SetString(PyExc_TypeError, "Need a callable object!");
+    return NULL;
+  }
+
+  $1 = LLDBSwigPythonCallPythonLogOutputCallback;
+  $2 = $input;
+}
+
+%typemap(typecheck) (lldb::LogOutputCallback callback, void *baton) {
+  if (!PyCallable_Check(reinterpret_cast<PyObject*>($input))) {
+    $1 = 0;
+  } else {
+    $1 = 1;
+  }
+}
Index: scripts/Python/python-extensions.swig
===================================================================
--- scripts/Python/python-extensions.swig	(revision 152029)
+++ scripts/Python/python-extensions.swig	(working copy)
@@ -392,6 +392,7 @@
                     return PyString_FromString("");
         }
 }
+#ifndef LLDB_DISABLE_PYTHON
 %extend lldb::SBTypeSummary {
         PyObject *lldb::SBTypeSummary::__str__ (){
                 lldb::SBStream description;
@@ -420,6 +421,7 @@
                     return PyString_FromString("");
         }
 }
+#endif // LLDB_DISABLE_PYTHON
 %extend lldb::SBThread {
         PyObject *lldb::SBThread::__str__ (){
                 lldb::SBStream description;
@@ -678,3 +680,13 @@
         return not self.__eq__(other)
 %}
 
+%{
+// For SBDebugger::Create(bool, lldb::LogOutputCallback, void*)
+void LLDBSwigPythonCallPythonLogOutputCallback(const char *str, void *baton) {
+    SWIG_PYTHON_THREAD_BEGIN_BLOCK;
+    PyObject_CallFunction(reinterpret_cast<PyObject*>(baton), const_cast<char*>("s"), str);
+    SWIG_PYTHON_THREAD_END_BLOCK;
+}
+
+%}
+
