diff --git a/assets/js/fake-input.js b/assets/js/fake-input.js
index 7cc7ff4862bf298ee78c5054da4d8406eaaca8e0..e7848c8443fdea61f578bebc48c875d5193b6048 100644
--- a/assets/js/fake-input.js
+++ b/assets/js/fake-input.js
@@ -16,6 +16,8 @@ const changeListener = (event) => {
 };
 
 Array.prototype.slice.call(document.querySelectorAll(".fake-input[contenteditable]")).forEach(elem => {
-    elem.addEventListener("keypress", keyListener);
     elem.addEventListener("input", changeListener);
+    if (!elem.dataset["multiline"]) {
+        elem.addEventListener("keypress", keyListener);
+    }
 });
\ No newline at end of file
diff --git a/templates/image_detail.html b/templates/image_detail.html
index 13cca1f300c361131dc8026c35c7998d2cb17598..e085f2da0d96bac1863473a91cdc403f3c39867e 100644
--- a/templates/image_detail.html
+++ b/templates/image_detail.html
@@ -11,7 +11,7 @@
         <img src="/{{.Image.Id}}">
     </div>
 {{if .IsMine}}
-    <div class="description fake-input" contenteditable="true" placeholder="Description">{{.Image.Description}}</div>
+    <div class="description fake-input" contenteditable="true" placeholder="Description" data-multiline>{{.Image.Description}}</div>
 {{else}}
     <div class="description">{{.Image.Description}}</div>
 {{end}}