diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc
index d9b2e27..b80f81c 100644
--- a/lily/clef-engraver.cc
+++ b/lily/clef-engraver.cc
@@ -37,6 +37,7 @@ protected:
 private:
   Item *clef_;
   Item *octavate_;
+  bool first_created_clef_;
 
   SCM prev_glyph_;
   SCM prev_cpos_;
@@ -59,6 +60,7 @@ Clef_engraver::Clef_engraver ()
   clef_ = 0;
   octave_dir_ = CENTER;
   octavate_ = 0;
+  first_created_clef_ = true;
 
   /*
     will trigger a clef at the start since #f != ' ()
@@ -101,6 +103,9 @@ Clef_engraver::create_clef ()
       if (scm_is_number (cpos))
 	clef_->set_property ("staff-position", cpos);
 
+      clef_->set_property ("first-clef", scm_from_bool (first_created_clef_));
+      first_created_clef_ = false;
+
       SCM oct = get_property ("clefOctavation");
       if (scm_is_number (oct) && scm_to_int (oct))
 	{
diff --git a/scm/define-grob-properties.scm b/scm/define-grob-properties.scm
index 2ce60be..aeb1271 100644
--- a/scm/define-grob-properties.scm
+++ b/scm/define-grob-properties.scm
@@ -202,6 +202,7 @@ set this to @code{(+inf.0 . -inf.0)}.")
      (finger-code ,symbol? "Code for the type of fingering indication
 in a fret diagram.  Options include @code{none}, @code{in-dot}, and
 @code{below-string}.")
+     (first-clef ,boolean? "If true, the clef is the first one on a staff.")
      (flag-count ,number? "The number of tremolo beams.")
      (flag-style ,symbol? "A string determining what style of flag
 glyph is typeset on a @code{Stem}.  Valid options include @code{()}
