diff --git a/modules/log/commerce_log.info.yml b/modules/log/commerce_log.info.yml
index 0c41213..929b24e 100644
--- a/modules/log/commerce_log.info.yml
+++ b/modules/log/commerce_log.info.yml
@@ -5,3 +5,5 @@ package: Commerce
 core: 8.x
 dependencies:
   - commerce:commerce
+  - commerce:commerce_cart
+  - commerce:commerce_order
diff --git a/modules/log/commerce_log.services.yml b/modules/log/commerce_log.services.yml
index 249b9ad..0bc174c 100644
--- a/modules/log/commerce_log.services.yml
+++ b/modules/log/commerce_log.services.yml
@@ -7,6 +7,10 @@ services:
     class: Drupal\commerce_log\LogCategoryManager
     arguments: ['@module_handler', '@cache.discovery']
 
+  commerce_log.order_subscriber:
+    class: Drupal\commerce_log\EventSubscriber
+    arguments: ['@plugin.manager.mail', '@renderer']
+
   commerce_log.order_event_subscriber:
     class: Drupal\commerce_log\EventSubscriber\OrderEventSubscriber
     arguments: ['@entity_type.manager', '@plugin.manager.mail', '@renderer']
diff --git a/modules/log/src/EventSubscriber/OrderEventSubscriber.php b/modules/log/src/EventSubscriber/OrderEventSubscriber.php
index 5d54d4f..be7a01d 100644
--- a/modules/log/src/EventSubscriber/OrderEventSubscriber.php
+++ b/modules/log/src/EventSubscriber/OrderEventSubscriber.php
@@ -2,16 +2,15 @@
 
 namespace Drupal\commerce_log\EventSubscriber;
 
+use Drupal\Core\Cache\Cache;
+use Drupal\Core\Entity\EntityTypeManagerInterface;
+use Drupal\Core\Mail\MailManagerInterface;
+use Drupal\Core\Render\Renderer;
 use Drupal\commerce_log\Event\OrderMessageEvent;
+use Drupal\commerce_order\Entity\Order;
 use Drupal\commerce_order\Event\OrderAssignEvent;
-use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\state_machine\Event\WorkflowTransitionEvent;
 use Symfony\Component\EventDispatcher\EventSubscriberInterface;
-use Drupal\Core\Mail\MailManagerInterface;
-use Drupal\Core\Render\Renderer;
-use Drupal\Core\Render\RenderContext;
-use Drupal\Core\Cache\Cache;
 
 /**
  * Handles generating and saving order log messages from admin and customer.
@@ -53,7 +52,6 @@ class OrderEventSubscriber implements EventSubscriberInterface {
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
-   * @param \Drupal\Core\Language\LanguageManagerInterface $lang_manager
    *   The language manager.
    * @param \Drupal\Core\Mail\MailManagerInterface $mail_manager
    *   The main manager.
@@ -63,9 +61,8 @@ class OrderEventSubscriber implements EventSubscriberInterface {
    * @throws \Drupal\Component\Plugin\Exception\InvalidPluginDefinitionException
    * @throws \Drupal\Component\Plugin\Exception\PluginNotFoundException
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, LanguageManagerInterface $lang_manager, MailManagerInterface $mail_manager, Renderer $renderer) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, MailManagerInterface $mail_manager, Renderer $renderer) {
     $this->logStorage = $entity_type_manager->getStorage('commerce_log');
-    $this->langManager = $lang_manager;
     $this->mailManager = $mail_manager;
     $this->renderer = $renderer;
   }
@@ -181,10 +178,12 @@ class OrderEventSubscriber implements EventSubscriberInterface {
    * @throws \Drupal\Core\Entity\EntityStorageException
    */
   public function onCustomerMessage(OrderMessageEvent $event) {
+    /** @var \Drupal\commerce_order\Entity\Order $order */
     $order = $event->getOrder();
+    $event_msg = $event->getMessage();
 
     $this->logStorage->generate($order, 'order_message_to_customer', [
-      'message' => $event->getMessage(),
+      'message' => $event_msg,
       'notify' => $event->getNotify(),
     ])->save();
 
@@ -195,51 +194,46 @@ class OrderEventSubscriber implements EventSubscriberInterface {
 
     // If we requested a notification be sent, send the customer an email.
     if ($event->getNotify()) {
-      $this->sendCustomerMsgEmail($event);
+      $this->sendCustomerMsgEmail($order, $event_msg);
     }
+    $event->stopPropagation();
   }
 
   /**
    * If notify customer is selected, send email of order comment.
    *
-   * @param \Drupal\commerce_log\Event\OrderMessageEvent $event
-   *   The message event.
+   * @param \Drupal\commerce_order\Entity\Order $order
+   *   The order the event references.
+   * @param string $event_msg
+   *   Message from Event.
+   *
+   * @throws \Exception
    */
-  public function sendCustomerMsgEmail(OrderMessageEvent $event) {
-    $order = $event->getOrder();
+  public function sendCustomerMsgEmail(Order $order, $event_msg) {
     $to = $order->getEmail();
 
+    // The email should not be empty, unless the order is malformed.
     if (!$to) {
-      // The email should not be empty, unless the order is malformed.
       return;
     }
 
+    $build = [
+      '#theme' => 'commerce_log_customer_message',
+      '#order_entity' => $order,
+      '#order_message' => $event_msg,
+    ];
     $params = [
       'headers' => [
         'Content-Type' => 'text/html; charset=UTF-8;',
         'Content-Transfer-Encoding' => '8Bit',
       ],
       'from' => $order->getStore()->getEmail(),
-      'subject' => $this->t('New message on order #@number', ['@number' => $order->getOrderNumber()]),
+      'subject' => t('New message on order #@number', ['@number' => $order->getOrderNumber()]),
       'order' => $order,
+      'body' => $this->renderer->render($build),
     ];
-
-    $build = [
-      '#theme' => 'commerce_log_customer_message',
-      '#order_entity' => $order,
-      '#order_message' => $event->getMessage(),
-    ];
-    $params['body'] = $this->renderer->executeInRenderContext(new RenderContext(), function () use ($build) {
-      return $this->renderer->render($build);
-    });
-
-    // Replicated logic from EmailAction and contact's MailHandler.
-    if (($customer = $order->getCustomer())) {
-      $langcode = $customer->getPreferredLangcode();
-    }
-    else {
-      $langcode = $this->langManager->getDefaultLanguage()->getId();
-    }
+    $customer = $order->getCustomer();
+    $langcode = $customer->getPreferredLangcode();
 
     $this->mailManager->mail('commerce_log', 'message', $to, $langcode, $params);
   }
diff --git a/modules/log/templates/commerce-log-customer-message.html.twig b/modules/log/templates/commerce-log-customer-message.html.twig
index be94454..efd4a31 100644
--- a/modules/log/templates/commerce-log-customer-message.html.twig
+++ b/modules/log/templates/commerce-log-customer-message.html.twig
@@ -26,7 +26,8 @@
       <table style="text-align: center; min-width: 450px; margin: 5px auto 0 auto; border: 1px solid #cccccc; border-radius: 5px; padding: 40px 30px 30px 30px;">
         <tbody>
         <tr>
-          <td style="font-size: 30px; padding-bottom: 30px">{{ 'Order Message'|t }}</td>
+          {# TODO Fix XSS Vulnerability Here #}
+          <td style="font-size: 30px; padding-bottom: 30px">{{ 'Order Message: @msg'|t({'@msg': order_message }) }}</td>
         </tr>
         <tr>
           <td style="font-weight: bold; padding-top:15px; padding-bottom: 15px; text-align: left; border-top: 1px solid #cccccc; border-bottom: 1px solid #cccccc">
@@ -35,7 +36,8 @@
         </tr>
         <tr>
           <td>
-           {{ order_message }}
+            {# TODO Fix XSS Vulnerability Here #}
+            {{ order_message }}
           </td>
         </tr>
         </tbody>
diff --git a/modules/order/commerce_order.info.yml b/modules/order/commerce_order.info.yml
index d7202a6..62999fa 100644
--- a/modules/order/commerce_order.info.yml
+++ b/modules/order/commerce_order.info.yml
@@ -11,7 +11,6 @@ dependencies:
   - profile:profile
   - state_machine:state_machine
   - drupal:options
-  - commerce:commerce_log
 config_devel:
   install:
     - commerce_order.commerce_order_type.default
