Network coding is a new paradigm that allows the intermediate nodes in a network to create new packets by combining the packets received on their incoming edges. The central problem in the design of network coding schemes is to assign local encoding coefficients for the intermediate edges in a way that allows every terminal node to decode the packets generated by the source node. The main applications of the network coding technique include content distribution, peer-topeer networks, and wireless ad-hoc networks. Such networks are characterized by highly dynamic set of users and frequent topological changes. 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 the addition of a new user. Our goal is to minimize the number of encoding coefficients that needs 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.