--- a/context.core.inc
+++ b/context.core.inc
@@ -124,6 +124,7 @@ function context_form_alter(&$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');
+    $form['#validate'][] = 'context_form_alter_node_validate';
   }
   // If the form is an admin for, flag it so that we can force a rebuild if needed.
   if (path_is_admin($_GET['q'])) {
@@ -182,6 +183,14 @@ function context_form_user_profile_form_alter(&$form, $form_state) {
 }
 
 /**
+ * Set context also on validate, otherwise forms that don't validate drop out
+ * of context.
+ */
+function context_form_alter_node_validate($form, &$form_state) {
+  context_node_condition($form['#node'], 'form');
+}
+
+/**
  * Implementation of hook_form_alter() for user_register_form.
  */
 function context_form_user_register_form(&$form, $form_state) {