As services become more loosely coupled and increasingly autonomous, heterogeneous distributed services should be able to discover and converse with each other dynamically, with or without human intervention. Current paradigms of service interaction require service developers to hardcode their logic to adhere strictly to pre-defined conversation policies. We propose here a mechanism for a Conversation Controller that can free service (and, to some extent, client) developers from having to couple business and conversation logic. We also describe our implementation of a prototype Conversation Controller. The Conversation Controller can direct and track spontaneous conversations between services and clients, thus enabling services to carry out an entire conversation without the service developers having to implement any explicit conversation control mechanisms. 10 Pages