diff --git a/open.php b/open.php
index 927a4534920034a1c8c4228e2d90b0f746186658..706c9ccd4a31e6febee613c9416acfc19988ef36 100644
--- a/open.php
+++ b/open.php
@@ -34,7 +34,8 @@ if($_POST):
     if ($topic = Topic::lookup($vars['topicId'])) {
         if ($form = DynamicForm::lookup($topic->ht['form_id'])) {
             $form = $form->instanciate();
-            if (!$form->isValid())
+            // Don't require internal fields (they're not shown)
+            if (!$form->isValid(function($f) { return !$f->get('private'); }))
                 $errors += $form->errors();
         }
     }