diff --git a/Source/WebInspectorUI/ChangeLog b/Source/WebInspectorUI/ChangeLog
index 7514fd7..b60f1a3 100644
--- a/Source/WebInspectorUI/ChangeLog
+++ b/Source/WebInspectorUI/ChangeLog
@@ -1,5 +1,17 @@
 2019-12-05  Devin Rousso  <drousso@apple.com>
 
+        Web Inspector: move the "Add Breakpoint" context menu to be next to the blackboxing context menu item
+        https://bugs.webkit.org/show_bug.cgi?id=204833
+
+        Reviewed by Timothy Hatcher.
+
+        Both items are related to JavaScript debugging, so they should be closer together.
+
+        * UserInterface/Views/ContextMenuUtilities.js:
+        (WI.appendContextMenuItemsForSourceCode):
+
+2019-12-05  Devin Rousso  <drousso@apple.com>
+
         Web Inspector: Support search on IndexedDB stores and indexes
         https://bugs.webkit.org/show_bug.cgi?id=129208
         <rdar://problem/16142046>
diff --git a/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js b/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js
index 537a0a8..81d4d50 100644
--- a/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js
+++ b/Source/WebInspectorUI/UserInterface/Views/ContextMenuUtilities.js
@@ -92,6 +92,19 @@
 
     contextMenu.appendSeparator();
 
+    if (location && (sourceCode instanceof WI.Script || (sourceCode instanceof WI.Resource && sourceCode.type === WI.Resource.Type.Script && !sourceCode.isLocalResourceOverride))) {
+        let existingBreakpoint = WI.debuggerManager.breakpointForSourceCodeLocation(location);
+        if (existingBreakpoint) {
+            contextMenu.appendItem(WI.UIString("Delete Breakpoint"), () => {
+                WI.debuggerManager.removeBreakpoint(existingBreakpoint);
+            });
+        } else {
+            contextMenu.appendItem(WI.UIString("Add Breakpoint"), () => {
+                WI.debuggerManager.addBreakpoint(new WI.Breakpoint(location));
+            });
+        }
+    }
+
     if (sourceCode.supportsScriptBlackboxing) {
         let blackboxData = WI.debuggerManager.blackboxDataForSourceCode(sourceCode);
         if (blackboxData && blackboxData.type === WI.DebuggerManager.BlackboxType.Pattern) {
@@ -144,21 +157,6 @@
     });
 
     contextMenu.appendSeparator();
-
-    if (location && (sourceCode instanceof WI.Script || (sourceCode instanceof WI.Resource && sourceCode.type === WI.Resource.Type.Script && !sourceCode.isLocalResourceOverride))) {
-        let existingBreakpoint = WI.debuggerManager.breakpointForSourceCodeLocation(location);
-        if (existingBreakpoint) {
-            contextMenu.appendItem(WI.UIString("Delete Breakpoint"), () => {
-                WI.debuggerManager.removeBreakpoint(existingBreakpoint);
-            });
-        } else {
-            contextMenu.appendItem(WI.UIString("Add Breakpoint"), () => {
-                WI.debuggerManager.addBreakpoint(new WI.Breakpoint(location));
-            });
-        }
-
-        contextMenu.appendSeparator();
-    }
 };
 
 WI.appendContextMenuItemsForURL = function(contextMenu, url, options = {})
