diff --git a/server/djrandom/frontend/static/js/djr/djr.js b/server/djrandom/frontend/static/js/djr/djr.js
index 5277e6e127528b99e5cc80cb420326bfe6e03eef..8f4a9024f7058282bcdb94f1191cd35c9c98c229 100644
--- a/server/djrandom/frontend/static/js/djr/djr.js
+++ b/server/djrandom/frontend/static/js/djr/djr.js
@@ -22,6 +22,7 @@ djr.init = function (userid) {
 
   // Set a callback on URL hash changes.
   $(window).bind('hashchange', djr.history.restore);
+  djr.history.restore();
 
   // Set autocompletion and search handlers.
   $('#queryField').autocomplete('/autocomplete', {
diff --git a/server/djrandom/frontend/static/js/djr/player.js b/server/djrandom/frontend/static/js/djr/player.js
index 87fea75bb2cf73c7107f07912c8993ae38b32793..3f6bbe62eebfdb8b62219b01778232994de7cab7 100644
--- a/server/djrandom/frontend/static/js/djr/player.js
+++ b/server/djrandom/frontend/static/js/djr/player.js
@@ -32,10 +32,12 @@ djr.Player.prototype.hideAllChunks = function() {
 djr.Player.prototype.removeChunk = function(chunk_id) {
   this.playlist.removeChunk(chunk_id);
   $('#chunk_' + chunk_id).remove();
-  this.savePlaylist();
   // If the playlist is now empty, switch to a new uuid.
   if (this.playlist.isEmpty()) {
     this.clearPlaylist();
+  } else {
+    // Only save the playlist if not empty.
+    this.savePlaylist();
   }
 };