diff -x '*.po' -d -urpN abrt.4/src/Gui/ccgui.glade abrt.5/src/Gui/ccgui.glade
--- abrt.4/src/Gui/ccgui.glade	2009-12-04 16:32:52.000000000 +0100
+++ abrt.5/src/Gui/ccgui.glade	2009-12-08 15:31:39.249550436 +0100
@@ -6,10 +6,9 @@
     <property name="width_request">270</property>
     <property name="border_width">12</property>
     <property name="title" translatable="yes">Please wait..</property>
-    <property name="resizable">False</property>
-    <property name="modal">True</property>
     <property name="window_position">center-on-parent</property>
     <property name="default_width">270</property>
+    <property name="destroy_with_parent">True</property>
     <property name="transient_for">main_window3</property>
     <child>
       <widget class="GtkVBox" id="vbox1">
@@ -19,19 +18,26 @@
           <widget class="GtkLabel" id="lStatus">
             <property name="visible">True</property>
             <property name="xalign">0</property>
+            <property name="yalign">0</property>
+            <property name="selectable">True</property>
           </widget>
           <packing>
-            <property name="expand">False</property>
             <property name="position">0</property>
           </packing>
         </child>
         <child>
-          <widget class="GtkProgressBar" id="pBar">
+          <widget class="GtkButton" id="bClose">
+            <property name="label" translatable="yes">gtk-close</property>
             <property name="visible">True</property>
-            <property name="text_xalign">0</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+            <property name="use_stock">True</property>
+            <property name="xalign">1</property>
+            <property name="yalign">1</property>
           </widget>
           <packing>
             <property name="expand">False</property>
+            <property name="fill">False</property>
             <property name="position">1</property>
           </packing>
         </child>
diff -x '*.po' -d -urpN abrt.4/src/Gui/CCMainWindow.py abrt.5/src/Gui/CCMainWindow.py
--- abrt.4/src/Gui/CCMainWindow.py	2009-12-07 13:56:10.282735116 +0100
+++ abrt.5/src/Gui/CCMainWindow.py	2009-12-08 16:02:27.544270364 +0100
@@ -55,7 +55,6 @@ class MainWindow():
         if self.pBarWindow:
             self.pBarWindow.connect("delete_event", self.sw_delete_event_cb)
             self.pBarWindow.set_transient_for(self.window)
-            self.pBar = self.wTree.get_widget("pBar")
 
         #init the dumps treeview
         self.dlist = self.wTree.get_widget("tvDumps")
@@ -163,20 +162,20 @@ class MainWindow():
     def error_cb(self, daemon, message=None):
         # try to hide the progressbar, we dont really care if it was visible ..
         try:
-            gobject.source_remove(self.timer)
             self.pBarWindow.hide()
         except Exception, e:
             pass
         gui_error_message(_("Unable to finish current task!\n%s" % message), parent_dialog=self.window)
 
     def update_cb(self, daemon, message):
-        message = message.replace('\n',' ')
-        self.wTree.get_widget("lStatus").set_text(message)
-
-    # call to update the progressbar
-    def progress_update_cb(self, *args):
-        self.pBar.pulse()
-        return True
+        if message != "":
+            #message = message.replace('\n',' ')
+            lStatus = self.wTree.get_widget("lStatus")
+            msg = lStatus.get_text()
+            if msg != "" and msg[-1] != "\n":
+                msg += "\n"
+            msg += message
+            lStatus.set_text(msg)
 
     def hydrate(self):
         n = None
@@ -259,19 +258,11 @@ class MainWindow():
         self.dlist.set_cursor(path[0])
 
     def on_report_done_cb(self, daemon, result):
-        try:
-            gobject.source_remove(self.timer)
-        except:
-            pass
         self.pBarWindow.hide()
         gui_report_dialog(result, self.window)
         self.hydrate()
 
     def on_analyze_complete_cb(self, daemon, report, pBarWindow):
-        try:
-            gobject.source_remove(self.timer)
-        except:
-            pass
         self.pBarWindow.hide()
 #FIXME - why we need this?? -> timeout warnings
 #        try:
@@ -281,14 +272,13 @@ class MainWindow():
         if not report:
             gui_error_message(_("Unable to get report!\nDebuginfo is missing?"))
             return
-        report_dialog = ReporterDialog(report, self.ccdaemon, parent=self.window)
+        report_dialog = ReporterDialog(report, self.ccdaemon, self.pBarWindow, parent=self.window)
         # (response, report)
         response, result = report_dialog.run()
 
         if response == gtk.RESPONSE_APPLY:
             try:
                 self.pBarWindow.show_all()
-                self.timer = gobject.timeout_add(100, self.progress_update_cb)
                 reporters_settings = {}
                 # self.pluginlist = getPluginInfoList(self.ccdaemon, refresh=True)
                 # don't force refresh!
@@ -299,13 +289,13 @@ class MainWindow():
                 #self.hydrate()
             except Exception, e:
                 gui_error_message(_("Reporting failed!\n%s" % e))
-        # -50 == REFRESH
-        elif response == -50:
+        elif response == -50:   # == RD_BUTTON_REFRESH
             self.refresh_report(report)
 
     def refresh_report(self, report):
+        lStatus = self.wTree.get_widget("lStatus")
+        lStatus.set_text("")
         self.pBarWindow.show_all()
-        self.timer = gobject.timeout_add(100, self.progress_update_cb)
 
         # show the report window with selected report
         try:
@@ -313,8 +303,6 @@ class MainWindow():
         except Exception, e:
             # FIXME #3  dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply
             # do this async and wait for yum to end with debuginfoinstal
-            if self.timer:
-                gobject.source_remove(self.timer)
             self.pBarWindow.hide()
             gui_error_message(_("Error getting the report: %s" % e))
         return
@@ -325,12 +313,12 @@ class MainWindow():
 
     def on_dumpRowActivated(self, treeview, iter, path, user_data=None):
         # FIXME don't duplicate the code, move to function
+        lStatus = self.wTree.get_widget("lStatus")
+        lStatus.set_text("")
         dumpsListStore, path = treeview.get_selection().get_selected_rows()
         if not path:
             return
-        #self.pBar.show()
         self.pBarWindow.show_all()
-        self.timer = gobject.timeout_add(100, self.progress_update_cb)
 
         dump = dumpsListStore.get_value(dumpsListStore.get_iter(path[0]), dumpsListStore.get_n_columns()-1)
         # show the report window with selected dump
@@ -339,15 +327,11 @@ class MainWindow():
         except Exception, e:
             # FIXME #3  dbus.exceptions.DBusException: org.freedesktop.DBus.Error.NoReply: Did not receive a reply
             # do this async and wait for yum to end with debuginfoinstal
-            if self.timer:
-                gobject.source_remove(self.timer)
             self.pBarWindow.hide()
             gui_error_message(_("Error getting the report: %s" % e))
         return
 
     def sw_delete_event_cb(self, widget, event, data=None):
-        if self.timer:
-            gobject.source_remove(self.timer)
         widget.hide()
         return True
 
diff -x '*.po' -d -urpN abrt.4/src/Gui/CCReporterDialog.py abrt.5/src/Gui/CCReporterDialog.py
--- abrt.4/src/Gui/CCReporterDialog.py	2009-12-08 15:30:44.279561049 +0100
+++ abrt.5/src/Gui/CCReporterDialog.py	2009-12-08 16:02:27.544270364 +0100
@@ -24,15 +24,17 @@ CD_BIN = "b"
 CD_TXT = "t"
 CD_ATT = "a"
 
-# response
-REFRESH = -50
+# Our custom button response codes
+RD_BUTTON_LOG = -60
+RD_BUTTON_REFRESH = -50
 
 class ReporterDialog():
     """Reporter window"""
-    def __init__(self, report, daemon, parent=None):
+    def __init__(self, report, daemon, pBarWindow, parent=None):
         self.editable = []
         self.row_dict = {}
         self.report = report
+        self.pBarWindow = pBarWindow
         #Set the Glade file
         # FIXME add to path
         self.gladefile = "%s%sreport.glade" % (sys.path[0],"/")
@@ -41,6 +43,7 @@ class ReporterDialog():
         self.window = self.wTree.get_widget("reporter_dialog")
         self.window.set_default_size(640, 480)
         self.window.connect("response", self.on_response, daemon)
+        self.parent = parent
         if parent:
             self.window.set_transient_for(parent)
             self.window.set_modal(True)
@@ -298,7 +301,15 @@ class ReporterDialog():
         return True
 
     def run(self):
-        result = self.window.run()
+        # repeat run() if [Log] btn is pressed
+        while 1:
+            result = self.window.run()
+            if result != RD_BUTTON_LOG:
+                self.pBarWindow.hide()
+                if self.parent:
+                    self.pBarWindow.set_transient_for(self.parent)
+                break
+            self.pBarWindow.set_transient_for(self.window)
+            self.pBarWindow.show_all()
         self.window.destroy()
         return (result, self.report)
-
diff -x '*.po' -d -urpN abrt.4/src/Gui/report.glade abrt.5/src/Gui/report.glade
--- abrt.4/src/Gui/report.glade	2009-12-04 16:32:52.000000000 +0100
+++ abrt.5/src/Gui/report.glade	2009-12-08 15:31:39.256267436 +0100
@@ -213,6 +213,20 @@
             <property name="visible">True</property>
             <property name="layout_style">end</property>
             <child>
+              <widget class="GtkButton" id="bLog">
+                <property name="label" translatable="yes">Log</property>
+                <property name="response_id">-60</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</property>
+              </widget>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+              </packing>
+            </child>
+            <child>
               <widget class="GtkButton" id="bCancel">
                 <property name="label">gtk-cancel</property>
                 <property name="response_id">-6</property>
@@ -224,7 +238,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">0</property>
+                <property name="position">1</property>
               </packing>
             </child>
             <child>
@@ -239,7 +253,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">1</property>
+                <property name="position">2</property>
               </packing>
             </child>
             <child>
@@ -253,7 +267,7 @@
               <packing>
                 <property name="expand">False</property>
                 <property name="fill">False</property>
-                <property name="position">2</property>
+                <property name="position">3</property>
               </packing>
             </child>
           </widget>
