diff --git a/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js b/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js
index 84c221b6a..ae5024c30 100644
--- a/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js
+++ b/webroot/rsrc/js/application/aphlict/behavior-aphlict-listen.js
@@ -1,108 +1,109 @@
 /**
  * @provides javelin-behavior-aphlict-listen
  * @requires javelin-behavior
  *           javelin-aphlict
  *           javelin-stratcom
  *           javelin-request
  *           javelin-uri
  *           javelin-dom
  *           javelin-json
  *           javelin-router
  *           phabricator-notification
  */
 
 JX.behavior('aphlict-listen', function(config) {
 
   var showing_reload = false;
 
   function onready() {
     var client = new JX.Aphlict(config.id, config.server, config.port)
       .setHandler(onaphlictmessage)
       .start();
   }
 
   // Respond to a notification from the Aphlict notification server. We send
   // a request to Phabricator to get notification details.
   function onaphlictmessage(type, message) {
     switch (type) {
       case 'error':
         new JX.Notification()
           .setContent('(Aphlict) ' + message)
           .alterClassName('jx-notification-error', true)
+          .setDuration(0)
           .show();
         break;
 
       case 'receive':
         var request = new JX.Request(
           '/notification/individual/',
           onnotification);
 
         var routable = request
           .addData({key: message.key})
           .getRoutable();
 
         routable
           .setType('notification')
           .setPriority(250);
 
         JX.Router.getInstance().queue(routable);
         break;
 
       default:
         if (__DEV__ && config.debug) {
           var details = message ? JX.JSON.stringify(message) : '';
 
           new JX.Notification()
             .setContent('(Aphlict) [' + type + '] ' + details)
             .alterClassName('jx-notification-debug', true)
             .setDuration(3000)
             .show();
         }
     }
   }
 
 
   // Respond to a response from Phabricator about a specific notification.
   function onnotification(response) {
     if (!response.pertinent) {
       return;
     }
 
     JX.Stratcom.invoke('notification-panel-update', null, {});
 
     // Show the notification itself.
     new JX.Notification()
       .setContent(JX.$H(response.content))
       .show();
 
 
     // If the notification affected an object on this page, show a
     // permanent reload notification if we aren't already.
     if ((response.primaryObjectPHID in config.pageObjects) && !showing_reload) {
       var reload = new JX.Notification()
         .setContent('Page updated, click to reload.')
         .alterClassName('jx-notification-alert', true)
         .setDuration(0);
       reload.listen('activate', function(e) { JX.$U().go(); });
       reload.show();
 
       showing_reload = true;
     }
   }
 
 
   // Wait for the element to load, and don't do anything if it never loads.
   // If we just go crazy and start making calls to it before it loads, its
   // interfaces won't be registered yet.
   JX.Stratcom.listen('aphlict-component-ready', null, onready);
 
   // Add Flash object to page
   JX.$(config.containerID).innerHTML =
     '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">' +
       '<param name="movie" value="' + config.swfURI + '" />' +
       '<param name="allowScriptAccess" value="always" />' +
       '<param name="wmode" value="opaque" />' +
       '<embed src="' + config.swfURI + '" wmode="opaque"' +
         'width="0" height="0" id="' + config.id + '">' +
     '</embed></object>'; //Evan sanctioned
 });