diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2457971a136..b4f5386c597 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,7 @@
 2007-08-13  Michael Snyder  <msnyder@access-company.com>
 
+	* tui/tui-winsource.c (tui_alloc_source_buffer): Clean up allocation.
+
 	* event-top.c (command_line_handler): Memory leak.
 
 	* mi/mi-cmd-var.c (mi_cmd_var_set_format): Memory leak.
diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c
index 443100197b3..2aed4c3c555 100644
--- a/gdb/tui/tui-winsource.c
+++ b/gdb/tui/tui-winsource.c
@@ -569,45 +569,40 @@ tui_alloc_source_buffer (struct tui_win_info *win_info)
 {
   char *src_line_buf;
   int i, line_width, max_lines;
-  enum tui_status ret = TUI_FAILURE;
 
   max_lines = win_info->generic.height;	/* less the highlight box */
   line_width = win_info->generic.width - 1;
   /*
-     ** Allocate the buffer for the source lines.  Do this only once since they
-     ** will be re-used for all source displays.  The only other time this will
-     ** be done is when a window's size changes.
+   * Allocate the buffer for the source lines.  Do this only once
+   * since they will be re-used for all source displays.  The only
+   * other time this will be done is when a window's size changes.
    */
   if (win_info->generic.content == NULL)
     {
-      src_line_buf = (char *) xmalloc ((max_lines * line_width) * sizeof (char));
+      src_line_buf = (char *) 
+	xmalloc ((max_lines * line_width) * sizeof (char));
       if (src_line_buf == (char *) NULL)
-	fputs_unfiltered (
-	   "Unable to Allocate Memory for Source or Disassembly Display.\n",
-			   gdb_stderr);
-      else
 	{
-	  /* allocate the content list */
-	  if ((win_info->generic.content =
-	  (void **) tui_alloc_content (max_lines, SRC_WIN)) == NULL)
-	    {
-	      xfree (src_line_buf);
-	      src_line_buf = (char *) NULL;
-	      fputs_unfiltered (
-				 "Unable to Allocate Memory for Source or Disassembly Display.\n",
-				 gdb_stderr);
-	    }
+	  fputs_unfiltered ("Unable to Allocate Memory for Source or Disassembly Display.\n",
+			    gdb_stderr);
+	  return TUI_FAILURE;
+	}
+      /* allocate the content list */
+      if ((win_info->generic.content =
+	   (void **) tui_alloc_content (max_lines, SRC_WIN)) == NULL)
+	{
+	  xfree (src_line_buf);
+	  fputs_unfiltered ("Unable to Allocate Memory for Source or Disassembly Display.\n",
+			    gdb_stderr);
+	  return TUI_FAILURE;
 	}
       for (i = 0; i < max_lines; i++)
 	((struct tui_win_element *)
 	 win_info->generic.content[i])->which_element.source.line =
 	  src_line_buf + (line_width * i);
-      ret = TUI_SUCCESS;
     }
-  else
-    ret = TUI_SUCCESS;
 
-  return ret;
+  return TUI_SUCCESS;
 }