          bool found = false;
          if (aAttribute && !aAttribute->IsEmpty()) {
            element->GetAttribute(*aAttribute, value);
-@@ -5280,4 +5276,35 @@ HTMLEditor::GetEditorRoot()
+@@ -5280,4 +5278,35 @@ HTMLEditor::GetEditorRoot()
    return GetActiveEditingHost();
  }
  

     }
 
     RefPtr<Selection> selection = GetSelection();
@@ -2623,11 +2624,6 @@ HTMLEditor::CreateElementWithDefaults(const nsAString& aTagName)
       rv.SuppressException();
       return nullptr;
     }

   ELEM(noframes, true, true, GROUP_BLOCK, GROUP_FLOW_ELEMENT),
   ELEM(noscript, true, true, GROUP_BLOCK, GROUP_FLOW_ELEMENT),
diff --git a/editor/libeditor/HTMLEditor.cpp b/editor/libeditor/HTMLEditor.cpp
index c20ca255e82a..23c74adf7ebf 100644
--- a/editor/libeditor/HTMLEditor.cpp
+++ b/editor/libeditor/HTMLEditor.cpp
@@ -130,8 +130,10 @@ HTMLEditor::HTMLEditor()
   , mPositionedObjectBorderTop(0)
   , mGridSize(0)
   , mDefaultParagraphSeparator(
-      Preferences::GetBool("editor.use_div_for_default_newlines", true)
-      ? ParagraphSeparator::div : ParagraphSeparator::br)
+      Preferences::GetBool("bluegriffon.returnKey.createsParagraph", true)
+      ? ParagraphSeparator::p
+      : (Preferences::GetBool("editor.use_div_for_default_newlines", true)
+         ? ParagraphSeparator::div : ParagraphSeparator::br))
 {
 }
 
@@ -300,7 +302,8 @@ HTMLEditor::Init(nsIDOMDocument* aDoc,
 
     if (!IsInteractionAllowed()) {
       // ignore any errors from this in case the file is missing
