Index: trunk/FACT++/dim/src/diccpp.cxx
===================================================================
--- trunk/FACT++/dim/src/diccpp.cxx	(revision 11069)
+++ trunk/FACT++/dim/src/diccpp.cxx	(revision 11070)
@@ -452,4 +452,6 @@
 	{
 		t->stop();
+//dim_print_date_time();
+//printf("DIM RPC: Stopped Timer, Data Received for %s\n", t->getName());
 		if(DimClient::getNoDataCopy() == 0)
 			memcpy(t->itsData, buf, size);
@@ -504,4 +506,6 @@
 			itsData = buf;
 		itsSize = size;
+//dim_print_date_time();
+//printf("DIM RPC: Timer fired, No Data Received for %s\n", itsName);
 		wakeUp = 1;
 		if(itsInit)
@@ -618,10 +622,19 @@
 		dim_wait();
 	itsWaiting = 1;
+	if(itsTimeout)
+		start(itsTimeout);
+//dim_print_date_time();
+//printf("DIM RPC: Started Timer for %s - %d secs\n", itsName, itsTimeout);
 	ret = DimClient::sendCommand(itsNameOut, itsDataOut, size); 
 	if(!ret)
 	{
+		if(itsTimeout)
+			stop();
+//dim_print_date_time();
+//printf("DIM RPC: Stopped Timer, Command failed for %s\n", itsName);
 //		rpc_user_routine((int *)&itsTagId, itsNolinkBuf, &itsNolinkSize);
 		rpc_user_routine((long *)&itsHandler, itsNolinkBuf, &itsNolinkSize);
 	}
+/*
 	else
 	{
@@ -629,4 +642,5 @@
 			start(itsTimeout);
 	}
+*/
 }
 
@@ -655,4 +669,6 @@
 //	if(itsTagId)
 //		id_free(itsTagId, SRC_DIC);
+//dim_print_date_time();
+//printf("DIM RPC: Deleting RPC and Timer for %s\n", itsName);
 	if(itsId)
 		dic_release_service(itsId);
Index: trunk/FACT++/dim/src/examples/rpc_client.cxx
===================================================================
--- trunk/FACT++/dim/src/examples/rpc_client.cxx	(revision 11069)
+++ trunk/FACT++/dim/src/examples/rpc_client.cxx	(revision 11070)
@@ -87,7 +87,7 @@
 
 	dim_init();
-	DimClient::setNoDataCopy();
+//	DimClient::setNoDataCopy();
 
-	for(i = 0; i < 10; i++)
+	for(i = 0; i < 1; i++)
 	{
 		dim_start_thread(do_work,(void *)i);
