diff --git a/source/Commands/CommandObjectBreakpoint.cpp b/source/Commands/CommandObjectBreakpoint.cpp
index bbbdf6b..9b53d6a 100644
--- a/source/Commands/CommandObjectBreakpoint.cpp
+++ b/source/Commands/CommandObjectBreakpoint.cpp
@@ -771,7 +771,7 @@
 
 CommandObjectBreakpointEnable::CommandObjectBreakpointEnable () :
     CommandObject ("enable",
-                     "Enables the specified disabled breakpoint(s).  If no breakpoints are specified, enables all of them.",
+                     "Enable the specified disabled breakpoint(s).  If no breakpoints are specified, enable all of them.",
                      "breakpoint enable [<breakpoint-id> | <breakpoint-id-list>]")
 {
     // This command object can either be called via 'enable' or 'breakpoint enable'.  Because it has two different
@@ -873,7 +873,7 @@
 
 CommandObjectBreakpointDisable::CommandObjectBreakpointDisable () :
     CommandObject ("disable",
-                   "Disables the specified breakpoint(s) without removing it/them.  If no breakpoints are specified, disables them all.",
+                   "Disable the specified breakpoint(s) without removing it/them.  If no breakpoints are specified, disable them all.",
                    "disable [<breakpoint-id> | <breakpoint-id-list>]")
 {
     // This command object can either be called via 'enable' or 'breakpoint enable'.  Because it has two different
@@ -973,7 +973,7 @@
 
 CommandObjectBreakpointDelete::CommandObjectBreakpointDelete() :
     CommandObject ("breakpoint delete",
-                   "Delete the specified breakpoint(s).  If no breakpoints are specified, deletes them all.",
+                   "Delete the specified breakpoint(s).  If no breakpoints are specified, delete them all.",
                    "breakpoint delete [<breakpoint-id> | <breakpoint-id-list>]")
 {
 }
@@ -1208,7 +1208,7 @@
 #pragma mark Modify
 
 CommandObjectBreakpointModify::CommandObjectBreakpointModify () :
-    CommandObject ("breakpoint modify", "Modifys the options on a breakpoint or set of breakpoints in the executable.", 
+    CommandObject ("breakpoint modify", "Modify the options on a breakpoint or set of breakpoints in the executable.", 
                    "breakpoint modify <cmd-options> break-id [break-id ...]")
 {
 }
diff --git a/source/Commands/CommandObjectBreakpointCommand.cpp b/source/Commands/CommandObjectBreakpointCommand.cpp
index 765333b..60c7d8f 100644
--- a/source/Commands/CommandObjectBreakpointCommand.cpp
+++ b/source/Commands/CommandObjectBreakpointCommand.cpp
@@ -50,7 +50,7 @@
         "Write the breakpoint command script in the Python scripting language."},
 
     { LLDB_OPT_SET_3, true, "commands",  'c', no_argument, NULL, 0, NULL,
-        "Write the breakpoint command script using the command line commands."},
+        "Write the breakpoint command script using standard debugger commands."},
 
     { 0, false, NULL, 0, 0, NULL, 0, NULL, NULL }
 };
@@ -112,7 +112,7 @@
 
 CommandObjectBreakpointCommandAdd::CommandObjectBreakpointCommandAdd () :
     CommandObject ("add",
-                   "Adds a set of commands to a breakpoint to be executed whenever a breakpoint is hit.",
+                   "Add a set of commands to a breakpoint, to be executed whenever the breakpoint is hit.",
                    "breakpoint command add <cmd-options> <breakpoint-id>")
 {
     SetHelpLong (
@@ -193,8 +193,8 @@
  \n\
 (lldb)  \n\
  \n\
-Special information  debugger command breakpoint commands \n\
---------------------------------------------------------- \n\
+Special information about debugger command breakpoint commands \n\
+-------------------------------------------------------------- \n\
  \n\
 You may enter any debugger command, exactly as you would at the \n\
 debugger prompt.  You may enter as many debugger commands as you like, \n\
diff --git a/source/Commands/CommandObjectCommands.cpp b/source/Commands/CommandObjectCommands.cpp
index b48f8ae..7f9d151 100644
--- a/source/Commands/CommandObjectCommands.cpp
+++ b/source/Commands/CommandObjectCommands.cpp
@@ -33,7 +33,7 @@
 public:
     CommandObjectCommandsSource() :
         CommandObject ("commands source",
-                   "Reads in debugger commands from the file <filename> and executes them.",
+                   "Read in debugger commands from the file <filename> and execute them.",
                    "command source <filename>")
     {
     }
@@ -139,8 +139,8 @@
 public:
     CommandObjectCommandsAlias () :
         CommandObject ("commands alias",
-                         "Allows users to define their own debugger command abbreviations.",
-                         "commands alias <new_command> <old_command> [<options-for-aliased-command>]")
+                       "Allow users to define their own debugger command abbreviations.",
+                       "commands alias <new_command> <old_command> [<options-for-aliased-command>]")
     {
         SetHelpLong(
     "'alias' allows the user to create a short-cut or abbreviation for long \n\
diff --git a/source/Commands/CommandObjectFrame.cpp b/source/Commands/CommandObjectFrame.cpp
index ed36bf7..013e8c9 100644
--- a/source/Commands/CommandObjectFrame.cpp
+++ b/source/Commands/CommandObjectFrame.cpp
@@ -53,7 +53,7 @@
 
     CommandObjectFrameInfo () :
     CommandObject ("frame info",
-                   "Lists information about the currently selected frame in the current thread.",
+                   "List information about the currently selected frame in the current thread.",
                    "frame info",
                    eFlagProcessMustBeLaunched | eFlagProcessMustBePaused)
     {
@@ -96,7 +96,8 @@
 
     CommandObjectFrameSelect () :
     CommandObject ("frame select",
-                   "Select the current frame by index in the current thread.",
+                   //"Select the current frame by index in the current thread.",
+                   "Select a frame by index from within the current thread and make it the current frame.",
                    "frame select <frame-index>",
                    eFlagProcessMustBeLaunched | eFlagProcessMustBePaused)
     {
@@ -362,12 +363,13 @@
                                 }
                                 if (addr == LLDB_INVALID_ADDRESS)
                                 {
-                                    result.GetErrorStream().Printf ("error: %s is not loaded", var_sc.module_sp->GetFileSpec().GetFilename().AsCString());
+                                    result.GetErrorStream().Printf ("error: %s is not loaded\n", 
+                                                                    var_sc.module_sp->GetFileSpec().GetFilename().AsCString());
                                 }
                             }
                             else
                             {
-                                result.GetErrorStream().Printf ("error: unable to resolve the variable address 0x%llx", file_addr);
+                                result.GetErrorStream().Printf ("error: unable to resolve the variable address 0x%llx\n", file_addr);
                             }
                         }
                         else
diff --git a/source/Commands/CommandObjectHelp.cpp b/source/Commands/CommandObjectHelp.cpp
index a2959af..78c2452 100644
--- a/source/Commands/CommandObjectHelp.cpp
+++ b/source/Commands/CommandObjectHelp.cpp
@@ -112,7 +112,7 @@
                     const char *long_help = sub_cmd_obj->GetHelpLong();
                     if ((long_help != NULL)
                         && (strlen (long_help) > 0))
-                        interpreter.OutputFormattedHelpText (output_strm, "", "", sub_cmd_obj->GetHelpLong(), 1);
+                        output_strm.Printf ("\n%s", long_help);
                     else
                         interpreter.OutputFormattedHelpText (output_strm, "", "", sub_cmd_obj->GetHelp(), 1);
                     output_strm.Printf ("\nSyntax: %s\n", sub_cmd_obj->GetSyntax());
diff --git a/source/Commands/CommandObjectImage.cpp b/source/Commands/CommandObjectImage.cpp
index e17dd57..ec99ff7 100644
--- a/source/Commands/CommandObjectImage.cpp
+++ b/source/Commands/CommandObjectImage.cpp
@@ -887,7 +887,7 @@
     CommandObjectImageDumpLineTable () :
         CommandObjectImageDumpSourceFileList ("image dump line-table",
                          "Dump the debug symbol file for one or more executable images.",
-                         "image dump line-table <file1> [<file2> ...]")
+                         "image dump line-table <source-file1> [<source-file2> ...]")
     {
     }
 
@@ -974,7 +974,7 @@
     //------------------------------------------------------------------
     CommandObjectImageDump(CommandInterpreter &interpreter) :
         CommandObjectMultiword ("image dump",
-                                "Dumps information in one or more executable images; 'line-table' expects a source file name",
+                                "A set of commands for dumping information about one or more executable images; 'line-table' expects a source file name",
                                 "image dump [symtab|sections|symfile|line-table] [<file1> <file2> ...]")
     {
         LoadSubCommand (interpreter, "symtab",      CommandObjectSP (new CommandObjectImageDumpSymtab ()));
diff --git a/source/Commands/CommandObjectLog.cpp b/source/Commands/CommandObjectLog.cpp
index a63e2ed..f5ad33d 100644
--- a/source/Commands/CommandObjectLog.cpp
+++ b/source/Commands/CommandObjectLog.cpp
@@ -83,7 +83,7 @@
     {
         if (args.GetArgumentCount() < 1)
         {
-            result.GetErrorStream() << m_cmd_syntax.c_str();
+            result.AppendErrorWithFormat("Usage: %s\n", m_cmd_syntax.c_str());
         }
         else
         {
@@ -254,7 +254,7 @@
         const size_t argc = args.GetArgumentCount();
         if (argc == 0)
         {
-            result.GetErrorStream() << m_cmd_syntax.c_str();
+            result.AppendErrorWithFormat("Usage: %s\n", m_cmd_syntax.c_str());
         }
         else
         {
diff --git a/source/Commands/CommandObjectMemory.cpp b/source/Commands/CommandObjectMemory.cpp
index 63879d8..f5fe0ec 100644
--- a/source/Commands/CommandObjectMemory.cpp
+++ b/source/Commands/CommandObjectMemory.cpp
@@ -178,7 +178,7 @@
 
     CommandObjectMemoryRead () :
         CommandObject ("memory read",
-                       "Read memory from the process being debugged.",
+                       "Read from the memory of the process being debugged.",
                        "memory read [<cmd-options>] <start-addr> [<end-addr>]",
                        eFlagProcessMustBeLaunched)
     {
@@ -396,7 +396,7 @@
 
     CommandObjectMemoryWrite () :
         CommandObject ("memory write",
-                       "Write memory to the process being debugged.",
+                       "Write to the memory of the process being debugged.",
                        "memory write [<cmd-options>] <addr> [value1 value2 ...]",
                        eFlagProcessMustBeLaunched)
     {
diff --git a/source/Commands/CommandObjectProcess.cpp b/source/Commands/CommandObjectProcess.cpp
index 3ca9e80..1548e26 100644
--- a/source/Commands/CommandObjectProcess.cpp
+++ b/source/Commands/CommandObjectProcess.cpp
@@ -103,7 +103,7 @@
 
     CommandObjectProcessLaunch () :
         CommandObject ("process launch",
-                       "Launches the executable in the debugger.",
+                       "Launch the executable in the debugger.",
                        "process launch [<cmd-options>] [<arguments-for-running-the-program>]")
     {
     }
@@ -454,7 +454,7 @@
 
     CommandObjectProcessAttach () :
         CommandObject ("process attach",
-                       "Attaches to a process.",
+                       "Attach to a process.",
                        "process attach <cmd-options>")
     {
         SetHelpLong("Currently, you must set the executable file before you can attach "
@@ -683,7 +683,7 @@
 
     CommandObjectProcessContinue () :
         CommandObject ("process continue",
-                       "Continues execution all threads in the current process.",
+                       "Continue execution of all threads in the current process.",
                        "process continue",
                        eFlagProcessMustBeLaunched | eFlagProcessMustBePaused)
     {
@@ -770,7 +770,7 @@
 
     CommandObjectProcessDetach () :
         CommandObject ("process detach",
-                       "Detaches from the current process being debugged.",
+                       "Detach from the current process being debugged.",
                        "process detach",
                        eFlagProcessMustBeLaunched)
     {
@@ -818,7 +818,7 @@
 
     CommandObjectProcessSignal () :
         CommandObject ("process signal",
-                       "Sends a UNIX signal to the current process being debugged.",
+                       "Send a UNIX signal to the current process being debugged.",
                        "process signal <unix-signal-number>")
     {
     }
@@ -884,7 +884,7 @@
 
     CommandObjectProcessInterrupt () :
     CommandObject ("process interrupt",
-                   "Interrupts the current process being debugged.",
+                   "Interrupt the current process being debugged.",
                    "process interrupt",
                    eFlagProcessMustBeLaunched)
     {
@@ -945,7 +945,7 @@
 
     CommandObjectProcessKill () :
     CommandObject ("process kill",
-                   "Terminates the current process being debugged.",
+                   "Terminate the current process being debugged.",
                    "process kill",
                    eFlagProcessMustBeLaunched)
     {
@@ -999,9 +999,9 @@
 {
 public:
     CommandObjectProcessStatus () :
-    CommandObject ("status",
-                   "Shows the current status and location of executing process.",
-                   "status",
+    CommandObject ("process status",
+                   "Show the current status and location of executing process.",
+                   "process status",
                    0)
     {
     }
diff --git a/source/Commands/CommandObjectSettings.cpp b/source/Commands/CommandObjectSettings.cpp
index ff06172..62657be 100644
--- a/source/Commands/CommandObjectSettings.cpp
+++ b/source/Commands/CommandObjectSettings.cpp
@@ -62,7 +62,7 @@
 
 CommandObjectSettingsSet::CommandObjectSettingsSet () :
     CommandObject ("settings set",
-                   "Allows the user to set or change the value of a single debugger setting variable.",
+                   "Set or change the value of a single debugger setting variable.",
                    "settings set [<cmd-options>] <setting-variable-name> <value>"),
     m_options ()
 {
@@ -259,7 +259,7 @@
 
 CommandObjectSettingsShow::CommandObjectSettingsShow () :
     CommandObject ("settings show",
-                    "Allows the user to see a single internal debugger setting variable and its value, or lists them all.",
+                    "Show the specified internal debugger setting variable and its value, or show all the currently set variables and their values, if nothing is specified.",
                     "settings show [<setting-variable-name>]")
 {
 }
@@ -365,7 +365,7 @@
 
 CommandObjectSettingsList::CommandObjectSettingsList () :
     CommandObject ("settings list",
-                   "Lists the internal debugger settings variables available to the user to 'set' or 'show'.",
+                   "List all the internal debugger settings variables that are available to the user to 'set' or 'show'.",
                    "settings list")
 {
 }
@@ -407,7 +407,7 @@
 
 CommandObjectSettingsRemove::CommandObjectSettingsRemove () :
     CommandObject ("settings remove",
-                   "Removes the specified element from an internal debugger settings array or dictionary variable.",
+                   "Remove the specified element from an internal debugger settings array or dictionary variable.",
                    "settings remove <setting-variable-name> [<index>|\"key\"]")
 {
 }
@@ -502,7 +502,7 @@
 
 CommandObjectSettingsReplace::CommandObjectSettingsReplace () :
     CommandObject ("settings replace",
-                   "Replaces the specified element from an internal debugger settings array or dictionary variable.",
+                   "Replace the specified element from an internal debugger settings array or dictionary variable with the specified new value.",
                    "settings replace <setting-variable-name> [<index>|\"<key>\"] <new-value>")
 {
 }
@@ -612,7 +612,7 @@
 
 CommandObjectSettingsInsertBefore::CommandObjectSettingsInsertBefore () :
     CommandObject ("settings insert-before",
-                   "Inserts value(s) into an internal debugger settings array variable, immediately before the specified element.",
+                   "Insert value(s) into an internal debugger settings array variable, immediately before the specified element.",
                    "settings insert-before <setting-variable-name> [<index>] <new-value>")
 {
 }
@@ -724,7 +724,7 @@
 
 CommandObjectSettingsInsertAfter::CommandObjectSettingsInsertAfter () :
     CommandObject ("settings insert-after",
-                   "Inserts value(s) into an internal debugger settings array variable, immediately after the specified element.",
+                   "Insert value(s) into an internal debugger settings array variable, immediately after the specified element.",
                    "settings insert-after <setting-variable-name> [<index>] <new-value>")
 {
 }
@@ -836,7 +836,7 @@
 
 CommandObjectSettingsAppend::CommandObjectSettingsAppend () :
     CommandObject ("settings append",
-                   "Appends new value to the end of an internal debugger settings array, dictionary or string variable.",
+                   "Append a new value to the end of an internal debugger settings array, dictionary or string variable.",
                    "settings append <setting-variable-name> <new-value>")
 {
 }
@@ -936,7 +936,7 @@
 
 CommandObjectSettingsClear::CommandObjectSettingsClear () :
     CommandObject ("settings clear",
-                   "Erases all the contents of an internal debugger settings variables; only valid for variables with clearable types, i.e. strings, arrays or dictionaries.",
+                   "Erase all the contents of an internal debugger settings variables; this is only valid for variables with clearable types, i.e. strings, arrays or dictionaries.",
                    "settings clear")
 {
 }
diff --git a/source/Commands/CommandObjectSource.cpp b/source/Commands/CommandObjectSource.cpp
index 937e624..65a95db 100644
--- a/source/Commands/CommandObjectSource.cpp
+++ b/source/Commands/CommandObjectSource.cpp
@@ -98,7 +98,7 @@
 public:   
     CommandObjectSourceInfo() :
         CommandObject ("source info",
-                         "Display info on the source lines from the current executable's debug info.",
+                         "Display information about the source lines from the current executable's debug info.",
                          "source info [<cmd-options>]")
     {
     }
@@ -229,7 +229,7 @@
 public:   
     CommandObjectSourceList() :
         CommandObject ("source list",
-                         "Display source files from the current executable's debug info.",
+                         "Display source code (as specified) based on the current executable's debug info.",
                          "source list [<cmd-options>] [<filename>]")
     {
     }
diff --git a/source/Commands/CommandObjectTarget.cpp b/source/Commands/CommandObjectTarget.cpp
index 3c41464..1410d5b 100644
--- a/source/Commands/CommandObjectTarget.cpp
+++ b/source/Commands/CommandObjectTarget.cpp
@@ -99,7 +99,7 @@
 
     CommandObjectTargetImageSearchPathsClear () :
         CommandObject ("target image-search-paths clear",
-                       "Clears all current image search paths substitution pairs from the current target.",
+                       "Clear all current image search path substitution pairs from the current target.",
                        "target image-search-paths clear")
     {
     }
@@ -134,7 +134,7 @@
 
     CommandObjectTargetImageSearchPathsInsert () :
         CommandObject ("target image-search-paths insert",
-                       "Inserts a new image search paths substitution pair to the current target at the specified index.",
+                       "Insert a new image search path substitution pair into the current target at the specified index.",
                        "target image-search-paths insert <index> <path-prefix> <new-path-prefix> [<path-prefix> <new-path-prefix>] ...")
     {
     }
@@ -217,7 +217,7 @@
 
     CommandObjectTargetImageSearchPathsList () :
         CommandObject ("target image-search-paths list",
-                       "Lists all current image search paths substitution pairs in the current target.",
+                       "List all current image search path substitution pairs in the current target.",
                        "target image-search-paths list")
     {
     }
@@ -258,7 +258,7 @@
 
     CommandObjectTargetImageSearchPathsQuery () :
     CommandObject ("target image-search-paths query",
-                   "Transforms a path using the first applicable image search path.",
+                   "Transform a path using the first applicable image search path.",
                    "target image-search-paths query <path>")
     {
     }
diff --git a/source/Commands/CommandObjectThread.cpp b/source/Commands/CommandObjectThread.cpp
index 28520bb..5fa54ed 100644
--- a/source/Commands/CommandObjectThread.cpp
+++ b/source/Commands/CommandObjectThread.cpp
@@ -332,7 +332,7 @@
 
     CommandObjectThreadBacktrace () :
         CommandObject ("thread backtrace",
-                       "Shows the stack for one or more threads.  If no threads are specified, shows the currently selected thread.  Use the thread-index \"all\" to see all threads.",
+                       "Show the stack for one or more threads.  If no threads are specified, shows the currently selected thread.  Use the thread-index \"all\" to see all threads.",
                        "thread backtrace [<thread-index>] ...",
                        eFlagProcessMustBeLaunched | eFlagProcessMustBePaused),
         m_options()
@@ -793,7 +793,7 @@
 
     CommandObjectThreadContinue () :
         CommandObject ("thread continue",
-                       "Continues execution of one or more threads in an active process.",
+                       "Continue execution of one or more threads in an active process.",
                        "thread continue <thread-index> [<thread-index> ...]",
                        eFlagProcessMustBeLaunched | eFlagProcessMustBePaused)
     {
@@ -1037,7 +1037,7 @@
 
     CommandObjectThreadUntil () :
         CommandObject ("thread until",
-                       "Runs the current or specified thread until it reaches a given line number or leaves the current function.",
+                       "Run the current or specified thread until it reaches a given line number or leaves the current function.",
                        "thread until [<cmd-options>] <line-number>",
                        eFlagProcessMustBeLaunched | eFlagProcessMustBePaused),
         m_options ()
@@ -1235,7 +1235,7 @@
 
     CommandObjectThreadSelect () :
         CommandObject ("thread select",
-                         "Selects a threads as the currently active thread.",
+                         "Select a threads as the currently active thread.",
                          "thread select <thread-index>",
                          eFlagProcessMustBeLaunched | eFlagProcessMustBePaused)
     {
@@ -1304,7 +1304,7 @@
 
     CommandObjectThreadList ():
         CommandObject ("thread list",
-                       "Shows a summary of all current threads in a process.",
+                       "Show a summary of all current threads in a process.",
                        "thread list",
                        eFlagProcessMustBeLaunched | eFlagProcessMustBePaused)
     {
