diff --git a/document_root/javascript/courses/edit.js b/document_root/javascript/courses/edit.js
index 4aa883d73e8c53db35ea57b2b450cbd1875cd8dd..2d939209614718260df5b2c3885fcfe93d47a93a 100644
--- a/document_root/javascript/courses/edit.js
+++ b/document_root/javascript/courses/edit.js
@@ -45,11 +45,47 @@ $(document).ready(function() {
 
     $('#dialog').dialog({
     	autoOpen: false,
-    	modal: true
+    	modal: true,
+    	beforeclose: dequeuePopup
     });
 
 });
 
+function queuePopup(htmlContent, buttons)
+{
+    var dialog = $('#dialog');
+    var queue = dialog.data('queue');
+    
+    if (!dialog.data('queue')) {
+        queue = [];
+    }
+    
+    queue.push({htmlContent: htmlContent, buttons: buttons});
+    dialog.data('queue', queue);
+    
+    if (!dialog.dialog('isOpen')) {
+        dequeuePopup();
+    }
+}
+
+function dequeuePopup()
+{   
+    var dialog = $('#dialog');
+    var queue = dialog.data('queue');
+    
+    if (queue.length == 0) { 
+        return true;
+    }
+    var args = queue.shift();
+    dialog.data('queue', queue);
+    
+    dialog.html(args.htmlContent);
+    dialog.dialog('option', 'buttons', args.buttons);
+    dialog.dialog('open');
+    
+    return false;
+}
+
 function handleAddRecord()
 {
     var currentTR = this.parentNode.parentNode;
@@ -107,17 +143,18 @@ function handleAddRecord()
         newNode.className = 'grad_tie_in_row';
         
         if ($('#courseNumber').val() < 400) {
-            $('#dialog').html('"800" grad courses cannot be tied to 100, 200, or 300 undergraduate courses');
-            $('#dialog').dialog('option', 'buttons', {
-            	'Reset':  function() {
-            		$(newNode.childNodes[15].childNodes[1]).click();
-    	    		$(this).dialog('close');
-            	},
-            	'Ignore': function() {
-            		$(this).dialog('close');
-            	}
-            });
-            $('#dialog').dialog('open');
+            queuePopup(
+                '"800" grad courses cannot be tied to 100, 200, or 300 undergraduate courses',
+                {
+                	'Reset':  function() {
+                		$(newNode.childNodes[15].childNodes[1]).click();
+        	    		$(this).dialog('close');
+                	},
+                	'Ignore': function() {
+                		$(this).dialog('close');
+                	}
+                }
+            );
         }
     }
 
@@ -249,17 +286,18 @@ function handleChangeCourseNumber()
     
     if (message) {
     	var courseNumberNode = this;
-        $('#dialog').html(message);
-        $('#dialog').dialog('option', 'buttons', {
-        	'Reset':  function() {
-	        	courseNumberNode.value = courseNumberNode.defaultValue;
-	    		$(this).dialog('close');
-        	},
-        	'Ignore': function() {
-        		$(this).dialog('close');
+        queuePopup(
+            message,
+            {
+            	'Reset':  function() {
+    	        	courseNumberNode.value = courseNumberNode.defaultValue;
+    	    		$(this).dialog('close');
+            	},
+            	'Ignore': function() {
+            		$(this).dialog('close');
+            	}
         	}
-        });
-        $('#dialog').dialog('open');
+        );
     }
 }
 
@@ -298,17 +336,18 @@ function handleChangeCourseLetter()
     
     if (message) {
     	var courseLetterNode = this;
-        $('#dialog').html(message);
-        $('#dialog').dialog('option', 'buttons', {
-        	'Reset':  function() {
-	        	courseLetterNode.value = courseLetterNode.defaultValue;
-	    		$(this).dialog('close');
-        	},
-        	'Ignore': function() {
-        		$(this).dialog('close');
-        	}
-        });
-        $('#dialog').dialog('open');
+        queuePopup(
+            message,
+            {
+            	'Reset':  function() {
+    	        	courseLetterNode.value = courseLetterNode.defaultValue;
+    	    		$(this).dialog('close');
+            	},
+            	'Ignore': function() {
+            		$(this).dialog('close');
+            	}
+            }
+        );
     }
 }
 
@@ -340,17 +379,18 @@ function handleChangeActivity()
 	
 	if (message) {
     	var activitySelectNode = this;
-        $('#dialog').html(message);
-        $('#dialog').dialog('option', 'buttons', {
-        	'Reset':  function() {
-	        	activitySelectNode.selectedIndex = 0;
-	    		$(this).dialog('close');
-        	},
-        	'Ignore': function() {
-        		$(this).dialog('close');
-        	}
-        });
-        $('#dialog').dialog('open');
+        queuePopup(
+            message,
+            {
+            	'Reset':  function() {
+    	        	activitySelectNode.selectedIndex = 0;
+    	    		$(this).dialog('close');
+            	},
+            	'Ignore': function() {
+            		$(this).dialog('close');
+            	}
+            }
+        );
 	}
 }
 
@@ -407,17 +447,18 @@ function handleChangeCredits()
 	
 	if (message) {
     	var creditNode = this;
-        $('#dialog').html(message);
-        $('#dialog').dialog('option', 'buttons', {
-        	'Reset':  function() {
-	        	creditNode.value = creditNode.defaultValue;
-	    		$(this).dialog('close');
-        	},
-        	'Ignore': function() {
-        		$(this).dialog('close');
-        	}
-        });
-        $('#dialog').dialog('open');
+        queuePopup(
+            message,
+            {
+            	'Reset':  function() {
+    	        	creditNode.value = creditNode.defaultValue;
+    	    		$(this).dialog('close');
+            	},
+            	'Ignore': function() {
+            		$(this).dialog('close');
+            	}
+            }
+        );
 	}
 }
 
@@ -439,17 +480,18 @@ function handleChangeDfRemoval()
 	
 	if (message) {
 		var dfRemovalNode = this;
-	    $('#dialog').html(message);
-	    $('#dialog').dialog('option', 'buttons', {
-	    	'Reset':  function() {
-	        	dfRemovalNode.checked = false;
-	    		$(this).dialog('close');
-	    	},
-	    	'Ignore': function() {
-	    		$(this).dialog('close');
-	    	}
-	    });
-	    $('#dialog').dialog('open');
+	    queuePopup(
+	        message,
+	        {
+    	    	'Reset':  function() {
+    	        	dfRemovalNode.checked = false;
+    	    		$(this).dialog('close');
+    	    	},
+    	    	'Ignore': function() {
+    	    		$(this).dialog('close');
+    	    	}
+	        }
+	    );
 	}
 }
 
@@ -552,19 +594,20 @@ var courseCodeAvailableAjaxResponder = AjaxClient.extend(
         var courseNumberNode = this.courseNumberNode;
         var courseLetterNode = this.courseLetterNode;
         
-        $('#dialog').html(message);
-        $('#dialog').dialog('option', 'buttons', {
-        	'Reset':  function() {
-	    		subjectNode.value = subjectNode.defaultValue;
-	        	courseNumberNode.value = courseNumberNode.defaultValue;
-	        	courseLetterNode.value = courseLetterNode.defaultValue;
-	    		$(this).dialog('close');
-        	},
-        	'Ignore': function() {
-        		$(this).dialog('close');
-        	}
-        });
-        $('#dialog').dialog('open');
+        queuePopup(
+            message,
+            {
+            	'Reset':  function() {
+    	    		subjectNode.value = subjectNode.defaultValue;
+    	        	courseNumberNode.value = courseNumberNode.defaultValue;
+    	        	courseLetterNode.value = courseLetterNode.defaultValue;
+    	    		$(this).dialog('close');
+            	},
+            	'Ignore': function() {
+            		$(this).dialog('close');
+            	}
+            }
+        );
     },
 
     getUrl: function() {