diff --git a/game.js b/game.js
index a9b34b7d0837f182b905ff5eb0c42ebda0d6d094..b270e7dde18a7963041bcb7360b902b6dea1e1a1 100644
--- a/game.js
+++ b/game.js
@@ -67,6 +67,17 @@ function joinGame(game, player) {
   return game;
 }
 
+function departGame(game, playerId) {
+    var departingPlayer = _.find(game.players, function(p){
+        return p.id === playerId;
+    });
+    removeFromArray(game.players, departingPlayer);
+    if(game.players.length === 0){
+        //kill the game
+        removeFromArray(gameList, game);
+    }
+}
+
 function startGame(game) {
   game.isStarted = true;
   setCurrentBlackCard(game);
@@ -195,6 +206,7 @@ exports.addGame = addGame;
 exports.getGame = getGame;
 exports.getPlayer = getPlayer;
 exports.joinGame = joinGame;
+exports.departGame = departGame;
 exports.readyForNextRound = readyForNextRound;
 exports.reset = reset;
 exports.roundEnded = roundEnded;
diff --git a/server.js b/server.js
index 3d9254897c26263fa0c15f8c7eb18603db6528da..4229075ea7db4cbb53d452301a55f151c524227a 100644
--- a/server.js
+++ b/server.js
@@ -57,6 +57,8 @@ io.sockets.on('connection', function(socket) {
   socket.on('disconnect', function() {
     if(socket.playerId && socket.gameId){
         delete players[socket.gameId][socket.playerId];
+        Game.departGame(Game.getGame(socket.gameId), socket.playerId);
+        lobbySocket.emit('gameAdded', Game.list());
     }
   });
 });