diff --git a/scripts/Python/interface/SBBreakpoint.i b/scripts/Python/interface/SBBreakpoint.i
index 0ca83bf..9e333c3 100644
--- a/scripts/Python/interface/SBBreakpoint.i
+++ b/scripts/Python/interface/SBBreakpoint.i
@@ -128,9 +128,19 @@
     uint32_t
     GetIgnoreCount () const;
     
+    %feature("docstring", "
+    //--------------------------------------------------------------------------
+    /// The breakpoint stops only if the condition expression evaluates to true.
+    //--------------------------------------------------------------------------
+    ") SetCondition;
     void 
     SetCondition (const char *condition);
     
+    %feature("docstring", "
+    //------------------------------------------------------------------
+    /// Get the condition expression for the breakpoint.
+    //------------------------------------------------------------------
+    ") GetCondition;
     const char *
     GetCondition ();
 
diff --git a/scripts/Python/interface/SBBreakpointLocation.i b/scripts/Python/interface/SBBreakpointLocation.i
index d41033f..093a0e6 100644
--- a/scripts/Python/interface/SBBreakpointLocation.i
+++ b/scripts/Python/interface/SBBreakpointLocation.i
@@ -50,9 +50,20 @@
     void
     SetIgnoreCount (uint32_t n);
 
+    %feature("docstring", "
+    //--------------------------------------------------------------------------
+    /// The breakpoint location stops only if the condition expression evaluates
+    /// to true.
+    //--------------------------------------------------------------------------
+    ") SetCondition;
     void 
     SetCondition (const char *condition);
     
+    %feature("docstring", "
+    //------------------------------------------------------------------
+    /// Get the condition expression for the breakpoint location.
+    //------------------------------------------------------------------
+    ") GetCondition;
     const char *
     GetCondition ();
 
diff --git a/scripts/Python/interface/SBWatchpoint.i b/scripts/Python/interface/SBWatchpoint.i
index 7525931..47177c7 100644
--- a/scripts/Python/interface/SBWatchpoint.i
+++ b/scripts/Python/interface/SBWatchpoint.i
@@ -66,9 +66,19 @@
     void
     SetIgnoreCount (uint32_t n);
 
+    %feature("docstring", "
+    //------------------------------------------------------------------
+    /// Get the condition expression for the watchpoint.
+    //------------------------------------------------------------------
+    ") GetCondition;
     const char *
     GetCondition ();
 
+    %feature("docstring", "
+    //--------------------------------------------------------------------------
+    /// The watchpoint stops only if the condition expression evaluates to true.
+    //--------------------------------------------------------------------------
+    ") SetCondition;
     void 
     SetCondition (const char *condition);
     
