diff -Naur IceCS-3.2.0.orig/src/Ice/IncomingAsync.cs IceCS-3.2.0/src/Ice/IncomingAsync.cs --- IceCS-3.2.0.orig/src/Ice/IncomingAsync.cs 2007-02-01 11:07:39.000000000 -0600 +++ IceCS-3.2.0/src/Ice/IncomingAsync.cs 2007-03-19 08:52:12.000000000 -0500 @@ -98,6 +98,42 @@ } } } + + public class IncomingAsyncD + { + protected void exception__(System.Exception exc) + { + exc_ = exc; + response__(); + } + + protected void response__() + { + lock(this) + { + handled_ = true; + System.Threading.Monitor.PulseAll(this); + } + } + + protected void waitForResponse__() + { + lock(this) + { + while(!handled_) + { + System.Threading.Monitor.Wait(this); + } + } + if(exc_ != null) + { + throw exc_; + } + } + + private bool handled_ = false; + private System.Exception exc_; + } } namespace Ice diff -Naur IceCS-3.2.0.orig/src/Ice/ObjectAdapterI.cs IceCS-3.2.0/src/Ice/ObjectAdapterI.cs --- IceCS-3.2.0.orig/src/Ice/ObjectAdapterI.cs 2007-02-14 13:20:52.000000000 -0600 +++ IceCS-3.2.0/src/Ice/ObjectAdapterI.cs 2007-03-18 17:31:15.000000000 -0500 @@ -601,6 +601,10 @@ catch(InvalidCastException) { endpoints = r.getEndpoints(); + if(endpoints.Length == 0 && _id == "") + { + return true; + } } lock(this)