diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py
index 184452f24e..23d07a0c2e 100644
--- a/InvenTree/order/models.py
+++ b/InvenTree/order/models.py
@@ -257,7 +257,11 @@ class PurchaseOrder(Order):
             self.save()
 
     def can_cancel(self):
-        return self.status not in [
+        """
+        A PurchaseOrder can only be cancelled under the following circumstances:
+        """
+        
+        return self.status in [
             PurchaseOrderStatus.PLACED,
             PurchaseOrderStatus.PENDING
         ]
diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html
index d3e1e02437..fa45bbfe41 100644
--- a/InvenTree/order/templates/order/order_base.html
+++ b/InvenTree/order/templates/order/order_base.html
@@ -47,7 +47,7 @@ src="{% static 'img/blank_image.png' %}"
             <span class='fas fa-check-circle'></span>
         </button>
         {% endif %}
-        {% if order.status == PurchaseOrderStatus.PENDING or order.status == PurchaseOrderStatus.PLACED %}
+        {% if order.can_cancel %}
         <button type='button' class='btn btn-default' id='cancel-order' title='{% trans "Cancel order" %}'>
             <span class='fas fa-times-circle icon-red'></span>
         </button>
diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index bd758e39fb..091b11e825 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -432,7 +432,7 @@ class PurchaseOrderCancel(AjaxUpdateView):
             form.add_error('confirm', _('Confirm order cancellation'))
 
         if not order.can_cancel():
-            form.add_error(None, _('Order cannot be cancelled as either pending or placed'))
+            form.add_error(None, _('Order cannot be cancelled'))
 
     def save(self, order, form, **kwargs):
         """