diff --git a/web_src/js/features/comp/ComboMarkdownEditor.ts b/web_src/js/features/comp/ComboMarkdownEditor.ts
index 69fe34269b..5f1807f373 100644
--- a/web_src/js/features/comp/ComboMarkdownEditor.ts
+++ b/web_src/js/features/comp/ComboMarkdownEditor.ts
@@ -3,7 +3,7 @@ import '@github/text-expander-element';
 import $ from 'jquery';
 import {attachTribute} from '../tribute.ts';
 import {hideElem, showElem, autosize, isElemVisible} from '../../utils/dom.ts';
-import {initEasyMDEPaste, initTextareaUpload} from './EditorUpload.ts';
+import {initEasyMDEPaste, initTextareaEvents} from './EditorUpload.ts';
 import {handleGlobalEnterQuickSubmit} from './QuickSubmit.ts';
 import {renderPreviewPanelContent} from '../repo-editor.ts';
 import {easyMDEToolbarActions} from './EasyMDEToolbarActions.ts';
@@ -110,9 +110,7 @@ class ComboMarkdownEditor {
     });
 
     initTextareaMarkdown(this.textarea);
-    if (this.dropzone) {
-      initTextareaUpload(this.textarea, this.dropzone);
-    }
+    initTextareaEvents(this.textarea, this.dropzone);
   }
 
   async setupDropzone() {
diff --git a/web_src/js/features/comp/EditorUpload.ts b/web_src/js/features/comp/EditorUpload.ts
index e572692cbf..4cc031e5c8 100644
--- a/web_src/js/features/comp/EditorUpload.ts
+++ b/web_src/js/features/comp/EditorUpload.ts
@@ -119,7 +119,7 @@ function handleClipboardText(textarea, e, {text, isShiftDown}) {
   const {value, selectionStart, selectionEnd} = textarea;
   const selectedText = value.substring(selectionStart, selectionEnd);
   const trimmedText = text.trim();
-  if (selectedText && isUrl(trimmedText)) {
+  if (selectedText && isUrl(trimmedText) && !isUrl(selectedText)) {
     e.preventDefault();
     replaceTextareaSelection(textarea, `[${selectedText}](${trimmedText})`);
   }
@@ -156,7 +156,7 @@ export function initEasyMDEPaste(easyMDE, dropzoneEl) {
   });
 }
 
-export function initTextareaUpload(textarea, dropzoneEl) {
+export function initTextareaEvents(textarea, dropzoneEl) {
   let isShiftDown = false;
   textarea.addEventListener('keydown', (e) => {
     if (e.shiftKey) isShiftDown = true;
@@ -166,7 +166,7 @@ export function initTextareaUpload(textarea, dropzoneEl) {
   });
   textarea.addEventListener('paste', (e) => {
     const {images, text} = getPastedContent(e);
-    if (images.length) {
+    if (images.length && dropzoneEl) {
       handleUploadFiles(new TextareaEditor(textarea), dropzoneEl, images, e);
     } else if (text) {
       handleClipboardText(textarea, e, {text, isShiftDown});
@@ -176,7 +176,7 @@ export function initTextareaUpload(textarea, dropzoneEl) {
     if (!e.dataTransfer.files.length) return;
     handleUploadFiles(new TextareaEditor(textarea), dropzoneEl, e.dataTransfer.files, e);
   });
-  dropzoneEl.dropzone.on(DropzoneCustomEventRemovedFile, ({fileUuid}) => {
+  dropzoneEl?.dropzone.on(DropzoneCustomEventRemovedFile, ({fileUuid}) => {
     const newText = removeAttachmentLinksFromMarkdown(textarea.value, fileUuid);
     if (textarea.value !== newText) textarea.value = newText;
   });