Middleware provides inter-operability and transparent location of servers in a heterogeneous distributed environment. A careful design of the middleware software is required however for achieving high performance. This research proposes an adaptive middleware architecture for CORBA-based systems. The adaptive middleware agent that maps an object name to the object reference has two modes of operations. In the handle-driven mode it returns a reference for the requested object to the client that uses this reference to re-send the request for the desired operation to the server whereas in the forwarding mode it forwards the entire client request to the server. The server upon invocation performs the desired operation and returns the results to the client. An adaptive ORB dynamically switches between these two modes depending on the current system load. Using a commercial middleware prod uct called Orbix-MT we have implemented a skeletal performance prototype for the adaptive ORB. Based on measurements made on a network of workstations and a synthetic workload we observe that the adaptive ORB can produce a substantial benefit in performance in comparison to a pure handle-driven or a pure forwarding ORB. Our measurements provide valuable insights into system behavior and performance.