Network coding is a new paradigm that allows the intermediate nodes to create new packets by combining the packets received on their incoming links. The central problem in network coding is to assign local encoding coefficients for the intermediate edges in a way that allows every terminal node to decode the packets sent by the source node. The main applications of the network coding technique include content distribution, peer-to-peer networks, and wireless ad-hoc networks. Such networks are characterized by highly dynamic set of users and frequent topological changes. Accordingly, in this paper we focus on the design of efficient multicast network codes for dynamic networks. First, we consider the problem of maintaining the feasibility of a given network code upon a change in the network topology or an addition of a new user. Our goal is to minimize the number of encoding coefficients that need to be modified to keep the network code feasible. Second, we present a new network coding algorithm that uses path-based coding assignments to efficiently handle frequent changes in the network topology and the multicast group.