Index: /trunk/geant4/interfaces/basic/include/G4UIQt.hh
===================================================================
--- /trunk/geant4/interfaces/basic/include/G4UIQt.hh	(revision 511)
+++ /trunk/geant4/interfaces/basic/include/G4UIQt.hh	(revision 512)
@@ -119,5 +119,5 @@
   QTextEdit *fCommandHistoryArea;
   QSignalMapper *signalMapper ;
-
+  QTreeWidget *fHelpTreeWidget;
 signals : 
   void myClicked(const QString &text);
@@ -127,5 +127,5 @@
   void commandEnteredCallback();
   void buttonCallback(const QString&);
-  void helpTreeCallback( QTreeWidgetItem*, int);
+  void helpTreeCallback();
 };
 
Index: /trunk/geant4/interfaces/basic/src/G4UIQt.cc
===================================================================
--- /trunk/geant4/interfaces/basic/src/G4UIQt.cc	(revision 511)
+++ /trunk/geant4/interfaces/basic/src/G4UIQt.cc	(revision 512)
@@ -503,10 +503,10 @@
   G4UIcommandTree * treeTop = UI->GetTree();
 
-  QTreeWidget *treeWidget = new QTreeWidget();
-  treeWidget->setColumnCount(2);
-  treeWidget->setColumnHidden(1,true);
+  fHelpTreeWidget = new QTreeWidget();
+  fHelpTreeWidget->setColumnCount(2);
+  fHelpTreeWidget->setColumnHidden(1,true);
   QStringList labels;
   labels << QString("Summary") << QString("Description");
-  treeWidget->setHeaderLabels(labels);
+  fHelpTreeWidget->setHeaderLabels(labels);
 
   QList<QTreeWidgetItem *> items;
@@ -525,9 +525,11 @@
     items.append(newItem);
   }
-  treeWidget->insertTopLevelItems(0, items);
+  fHelpTreeWidget->insertTopLevelItems(0, items);
 
   //connecting callback
-  signalMapper = new QSignalMapper(this);
-  connect(treeWidget, SIGNAL(itemClicked(QTreeWidgetItem*, int)),this, SLOT(helpTreeCallback(QTreeWidgetItem*, int)));  
+  //  QSignalMapper signalMapper = new QSignalMapper(this);
+
+  connect(fHelpTreeWidget, SIGNAL(itemClicked(QTreeWidgetItem*, int)),this, SLOT(helpTreeCallback(QTreeWidgetItem*, int)));  
+  connect(fHelpTreeWidget, SIGNAL(itemSelectionChanged ()),this, SLOT(helpTreeCallback()));  
 
   // Set layouts
@@ -536,5 +538,5 @@
   QVBoxLayout *vLayout = new QVBoxLayout;
 
-  splitterLayout->addWidget(treeWidget);
+  splitterLayout->addWidget(fHelpTreeWidget);
   splitterLayout->addWidget(fHelpArea);
   splitter->setLayout(splitterLayout);
@@ -668,24 +670,31 @@
 This callback is activated when user selected a item in the help tree
  */
-/***************************************************************************/
 void G4UIQt::helpTreeCallback (
- QTreeWidgetItem* a_treeItem
-,int a_index
-)
-/***************************************************************************/
-/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
-{
-  if (fHelpArea) {
-    G4UImanager* UI = G4UImanager::GetUIpointer();
-    if(UI==NULL) return;
-    G4UIcommandTree * treeTop = UI->GetTree();
-    G4UIcommand* command = treeTop->FindPath(a_treeItem->text (1).toStdString().c_str());
-    if (command) {
-      fHelpArea->setText(GetCommandList(command));
-    } else {
-      // this is not a command, this is a sub directory
-      // We display the Title
-      fHelpArea->setText(a_treeItem->text (1).toStdString().c_str());
-    }
+)
+/***************************************************************************/
+/*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/
+{
+  printf ("G4UIQt::TerminalHelp ===========================\n");
+  QTreeWidgetItem* item =  NULL;
+  if (!fHelpTreeWidget)
+    return ;
+
+  if (!fHelpArea)
+    return;
+  
+  item = fHelpTreeWidget->selectedItems().first();
+  if (!item)
+    return;
+  
+  G4UImanager* UI = G4UImanager::GetUIpointer();
+  if(UI==NULL) return;
+  G4UIcommandTree * treeTop = UI->GetTree();
+  G4UIcommand* command = treeTop->FindPath(item->text (1).toStdString().c_str());
+  if (command) {
+    fHelpArea->setText(GetCommandList(command));
+  } else {
+    // this is not a command, this is a sub directory
+    // We display the Title
+    fHelpArea->setText(item->text (1).toStdString().c_str());
   }
 }
@@ -715,5 +724,5 @@
 
   for( G4int i_thGuidance=0; i_thGuidance < n_guidanceEntry; i_thGuidance++ )
-    { txt += QString((char*)(a_command->GetGuidanceLine(i_thGuidance)).data()) + "---\n"; }
+    { txt += QString((char*)(a_command->GetGuidanceLine(i_thGuidance)).data()) + "\n"; }
   if( ! rangeString.isNull() )
     { txt += " Range of parameters : " + QString((char*)(rangeString).data()) + "\n"; }
