diff --git a/server/djrandom/frontend/static/js/djr/djr.js b/server/djrandom/frontend/static/js/djr/djr.js
index 4b5e4b70e460deabcd5197f2d672c5dd808896a5..bb768054cec0b48b766ef10e85b9d89f1d1b53f8 100644
--- a/server/djrandom/frontend/static/js/djr/djr.js
+++ b/server/djrandom/frontend/static/js/djr/djr.js
@@ -183,6 +183,23 @@ djr.debug = function(msg) {
   $('#debug').append('<p>' + msg + '</p>');
 };
 
+// Report a player error.
+djr.playerError = function(event) {
+  console.log(event.jPlayer.error);
+  console.log(event.jPlayer.error.type);
+  switch(event.jPlayer.error.type) {
+  case $.jPlayer.error.URL:
+    djr.debug('Error downloading song, skipping...')
+    if (djr.state.player) {
+      djr.state.player.nextSong();
+    }
+    break;
+  default:
+    djr.debug('Error: unexpected error (' + event.jPlayer.error.type + ')');
+    break;
+  }
+};
+
 // Utility functions.
 var CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
 djr.generateRandomId = function() {
diff --git a/server/djrandom/frontend/static/js/djr/player.js b/server/djrandom/frontend/static/js/djr/player.js
index bdeae64759845f3bce4a6d7592f514be2d852719..93f1c3cac5206b261ee0372bb6d429cd45fc0862 100644
--- a/server/djrandom/frontend/static/js/djr/player.js
+++ b/server/djrandom/frontend/static/js/djr/player.js
@@ -16,9 +16,7 @@ djr.Player = function(backend, selector) {
     solution: "html,flash",
     swfPath: "/static/js",
     cssSelectorAncestor: "#cp_container",
-    error: function(e) {
-      djr.state.player.reportError(e);
-    }
+    error: djr.playerError
   });
   this.player = this.circleplayer.player;
 
@@ -338,21 +336,5 @@ djr.Player.prototype.streamCurrentPlaylist = function(enable) {
   // Nothing for now.
 };
 
-// An error has occurred in the player. Report it on the javascript
-// console.
-djr.Player.prototype.reportError = function(event) {
-  console.log(event.jPlayer.error);
-  console.log(event.jPlayer.error.type);
-  switch(event.jPlayer.error.type) {
-  case $.jPlayer.error.URL:
-    djr.debug('Error downloading song, skipping...')
-    this.nextSong();
-    break;
-  case $.jPlayer.error.NO_SOLUTION:
-    djr.debug('Error: unexpected error!');
-    break;
-  }  
-};
-
 
 // Fine