Index: tolsh/tolsh.vfs/lib/tolcomm/tolserver.tcl
===================================================================
--- tolsh/tolsh.vfs/lib/tolcomm/tolserver.tcl	(revision 1f82c0121087f58778f0ee9e8531beddcd5a9499)
+++ tolsh/tolsh.vfs/lib/tolcomm/tolserver.tcl	(revision 080113c6772bb20caa1f7fa4b6bc0dccdadfbd83)
@@ -37,4 +37,5 @@
 
 global shared_state
+global shared_finish
 
 ###############################################################################
@@ -477,9 +478,14 @@
   global shared_tasks
   global shared_state
+  global shared_finish
 
   tequila::open localhost 20458
   tequila::attach shared_tasks
   tequila::attach shared_state
-  
+  tequila::attach shared_finish
+  
+  #trace add var shared_finish(tasks) write tolserver::server_listen_finish
+  trace add var shared_finish write tolserver::server_listen_finish
+
   # this trace is just for debbuging, it's not necesary actually
   trace add var shared_tasks write tolserver::server_listen_tasks
@@ -488,4 +494,17 @@
   trace add var shared_state write tolserver::server_listen_state
 }    
+
+proc tolserver::server_listen_finish {name index op} {
+  global shared_finish
+
+  log "debug" "enter server_listen_finish:index=$index"
+  log "debug" "[array get ::shared_finish]"
+  
+  # inform client this request has being finished
+  foreach {chan idtask} $shared_finish(tasks) break
+  after idle [namespace code "send_to_client $chan TFINISH $idtask"]
+
+  log "debug" "leave server_listen_finish"
+}
 
 proc tolserver::server_listen_tasks {name index op} {
@@ -570,5 +589,4 @@
 
 proc ::tolserver::send_tasks_to_slave {} {
-  #global shared_data
 
   log "debug" "enter send_tasks_to_slave"
@@ -577,8 +595,4 @@
     set_queue_shared $t_list
   }
-  #if {$shared_data(ack) == 0} {
-    #log "debug" "send_tasks_to_slave: vwait shared_data(ack)"
-    #vwait shared_data(ack)
-  #}
   log "debug" "leave send_tasks_to_slave"
 }
Index: tolsh/tolsh.vfs/lib/tolcomm/tolslave.tcl
===================================================================
--- tolsh/tolsh.vfs/lib/tolcomm/tolslave.tcl	(revision 1f82c0121087f58778f0ee9e8531beddcd5a9499)
+++ tolsh/tolsh.vfs/lib/tolcomm/tolslave.tcl	(revision 080113c6772bb20caa1f7fa4b6bc0dccdadfbd83)
@@ -26,6 +26,8 @@
 
 global shared_state
-#set shared_data(ack) 0
 set shared_state(slave) "busy"
+
+global shared_finish
+set shared_finish(tasks) ""
 
 global shared_tasks
@@ -92,5 +94,4 @@
   }
 
-  #set shared_data(ack) 0
   set shared_state(slave) "ready"
   log "debug" "leave start"
@@ -101,8 +102,10 @@
   global shared_state
   global shared_tasks
+  global shared_finish
 
   tequila::open localhost 20458
   tequila::attach shared_state
   tequila::attach shared_tasks
+  tequila::attach shared_finish
   
   #trace add var shared_tasks(request) write tolslave::slave_listen_tasks
@@ -111,4 +114,7 @@
   # this trace is just for debbuging, it's not necesary actually
   trace add var shared_state write tolslave::slave_listen_state
+
+  # this trace is just for debbuging, it's not necesary actually
+  trace add var shared_finish write tolslave::slave_listen_finish
 }    
 
@@ -118,5 +124,4 @@
   log "debug" "enter slave_listen_tasks:index=$index"
   log "debug" "[array get ::shared_tasks]"
-  #set shared_data(ack) 0
   if {$index eq "request"} {
     schedule_queue
@@ -132,6 +137,12 @@
 }
 
+proc tolslave::slave_listen_finish {name index op} {
+  global shared_finish
+
+  log "debug" "slave_listen_finish:index=$index"
+  log "debug" "[array get shared_finish]"
+}
+
 proc ::tolslave::schedule_queue { } {
-  #global shared_data
 
   log "debug" "enter, schedule_queue"
@@ -139,5 +150,4 @@
   set_queue_tasks $t_list
   after idle [process_queue]
-  #set shared_data(ack) 1
   log "debug" "leave, schedule_queue"
 }
@@ -162,4 +172,5 @@
   variable data
   global shared_state
+  global shared_finish
 
   log "debug" "enter, process_queue"
@@ -179,10 +190,9 @@
       log "debug" "::tol::console eval tol_expr=$tol_expr"
       ::tol::console eval $tol_expr
-      # inform client this request has being finished
-      #after idle [namespace code "send_to_client $chan TFINISH $idtask"]
+      # inform server this request has being finished
+      set shared_finish(tasks) [list $chan $idtask]
     }
   }
   set shared_state(slave) "ready"
-  #tequila::do GetAll shared_data
   log "debug" "leave, process_queue"
 }
