diff --git a/context.core.inc b/context.core.inc
index 4812255..eaa003a 100644
--- a/context.core.inc
+++ b/context.core.inc
@@ -121,6 +121,13 @@ function context_node_view($node, $view_mode) {
  * Implementation of hook_form_alter().
  */
 function context_form_alter(&$form, $form_state, $form_id) {
+  $form['#after_build'][] = 'context_form_alter_node_after_build';
+}
+
+/**
+ * Running as an after_build function will ensure that the script will be run if there validation errors are returned
+ */
+function context_form_alter_node_after_build(&$form, $form_state, $form_id) {
   // Prevent this from firing on admin pages... damn form driven apis...
   if (!empty($form['#node_edit_form']) && arg(0) != 'admin') {
     context_node_condition($form['#node'], 'form');
@@ -129,6 +136,7 @@ function context_form_alter(&$form, $form_state, $form_id) {
   if (path_is_admin($_GET['q'])) {
     $form['#submit'][] = 'context_admin_form_submit';
   }
+  return $form;
 }
 
 /**
