Middleware simplifies the construction of distributed applications. These applications typically require continuous uptime. The maintenance of distributed applications, though, imposes costly downtime. The evolution of software systems is therefore an important concern for middleware systems. We present a model that enables us to update an application without terminating its execution. We see software updates as cross-cutting concerns and therefore express updates as aspects which are woven into the application. The aspect-oriented approach ensures that updates are modular and atomic. Categories and Subject Descriptors D.2.7 [Software Engineering]: Distribution, Maintenance, and Enhancement--Version control; D.3.4 [Software]: Compilers; F.3.2 [Logics and Meanings of Programs]: Semantics of Programming Languages--Program analysis General Terms Design, Languages Keywords Aspect-orientation, software updating, system evolution