diff --git a/app/components/elements/ReplyEditor.scss b/app/components/elements/ReplyEditor.scss
index 4ec9796b7994914ac92c20ff015744de8f17277d..e3560e157676227e7b26ac22f3ffefd8d86960b9 100644
--- a/app/components/elements/ReplyEditor.scss
+++ b/app/components/elements/ReplyEditor.scss
@@ -4,7 +4,7 @@
 }
 
 .PostFull .ReplyEditor__body {
-  margin: 1rem -1rem 0;
+  margin: 1rem 0 0;
 }
 
 .ReplyEditor form {
diff --git a/app/components/elements/SlateEditor.jsx b/app/components/elements/SlateEditor.jsx
index b50e4ebe9074455525b28bd5836279dc45f1a7cc..ec861b236b0367ebdb49f4b5b5f16be5886cd3a8 100644
--- a/app/components/elements/SlateEditor.jsx
+++ b/app/components/elements/SlateEditor.jsx
@@ -72,6 +72,7 @@ export default class SlateEditor extends React.Component {
     // Check if the current selection has a mark with `type` in it.
     hasMark = (type) => {
         const { state } = this.state
+        if (!state.isExpanded) return
         return state.marks.some(mark => mark.type == type)
     }
 
@@ -295,6 +296,17 @@ console.log(JSON.stringify(Raw.serialize(state, {terse: false})))
             .apply()
     }
 
+    onPaste = (e, data, state) => {
+        console.log("** onPaste:", data.type, data.html)
+        if (data.type != 'html') return
+        const { document } = serializer.deserialize(data.html)
+
+        return state
+            .transform()
+            .insertFragment(document)
+            .apply()
+    }
+
     render = () => {
         const { state } = this.state
         return (
@@ -370,6 +382,7 @@ console.log(JSON.stringify(Raw.serialize(state, {terse: false})))
                     state={this.state.state}
                     onChange={this.onChange}
                     onKeyDown={this.onKeyDown}
+                    onPaste={this.onPaste}
                 />
             </div>
         )
diff --git a/app/components/elements/SlateEditor.scss b/app/components/elements/SlateEditor.scss
index ef0c456f2dfc8b5bf911fb46b09c9448139fe55d..9a7345f308cf0c74bed7fe539069c1e0ada68be0 100644
--- a/app/components/elements/SlateEditor.scss
+++ b/app/components/elements/SlateEditor.scss
@@ -1,7 +1,7 @@
 .SlateEditor {
-  padding: 1rem;
-  border: 1px solid $medium-gray;
-  border-radius: 8px;
+  //padding: 1rem;
+  //border: 1px solid $medium-gray;
+  //border-radius: 8px;
 }
 
 .SlateEditor.Markdown {
diff --git a/app/utils/SlateEditor/Schema.js b/app/utils/SlateEditor/Schema.js
index 8382c64dbbf643ba1b982c21daa1a2029c54cb73..5297653aacea5360cbf9c93e9f679b5ab42d493c 100644
--- a/app/utils/SlateEditor/Schema.js
+++ b/app/utils/SlateEditor/Schema.js
@@ -105,15 +105,9 @@ export const HtmlRules = [
     {
         deserialize: (el, next) => {
             switch(el.tagName) {
-                case 'iframe':
-                    return {
-                        kind: 'block',
-                        type: 'paragraph',
-                        nodes: next(el.children)
-                    }
                 case 'img':
                     return {
-                        kind: 'block',
+                        kind: 'inline',
                         type: 'image',
                         isVoid: true,
                         data: {src: el.attribs.src},
@@ -156,7 +150,7 @@ export const HtmlRules = [
                 if(!href) console.log("** ERR: serializing <a> with no href", JSON.stringify(object.data, null, 2))
                 return <a href={href}>{children}</a>
             }
-            if(object.kind == 'block' && object.type == 'image') {
+            if(object.kind == 'inline' && object.type == 'image') {
                 const src = object.data.get('src')
                 if(!src) console.log("** ERR: serializing image with no src...", JSON.stringify(object))
                 return <img src={src} />