diff --git a/util/hb-shape.cc b/util/hb-shape.cc
index 1910848..a76a778 100644
--- a/util/hb-shape.cc
+++ b/util/hb-shape.cc
@@ -42,7 +42,7 @@
   protected:
   GString *gs;
   hb_font_t *font;
-  hb_buffer_t *scratch;
+  unsigned int line_no;
 };
 
 void
@@ -51,7 +51,7 @@
   get_file_handle ();
   font = hb_font_reference (font_opts->get_font ());
   gs = g_string_new (NULL);
-  scratch = hb_buffer_create ();
+  line_no = 0;
 }
 
 void
@@ -59,29 +59,15 @@
 			       const char   *text,
 			       unsigned int  text_len)
 {
+  line_no++;
   g_string_set_size (gs, 0);
-
-  if (show_text) {
-    g_string_append_len (gs, text, text_len);
-    g_string_append_c (gs, '\n');
-  }
-
-  if (show_unicode) {
-    hb_buffer_reset (scratch);
-    hb_buffer_add_utf8 (scratch, text, text_len, 0, -1);
-    serialize_unicode (buffer, gs);
-    g_string_append_c (gs, '\n');
-  }
-
-  serialize_glyphs (buffer, font, gs);
-  fprintf (fp, "%s\n", gs->str);
+  serialize_line (buffer, line_no, text, text_len, font, gs);
+  fprintf (fp, "%s", gs->str);
 }
 
 void
 output_buffer_t::finish (const font_options_t *font_opts)
 {
-  hb_buffer_destroy (scratch);
-  scratch = NULL;
   g_string_free (gs, TRUE);
   gs = NULL;
   hb_font_destroy (font);
diff --git a/util/options.cc b/util/options.cc
index e497d72..2bf2c58 100644
--- a/util/options.cc
+++ b/util/options.cc
@@ -678,6 +678,7 @@
     {"no-clusters",	0, G_OPTION_FLAG_REVERSE, G_OPTION_ARG_NONE,	&this->show_clusters,		"Do not show cluster mapping",		NULL},
     {"show-text",	0, 0,			  G_OPTION_ARG_NONE,	&this->show_text,		"Show input text",			NULL},
     {"show-unicode",	0, 0,			  G_OPTION_ARG_NONE,	&this->show_unicode,		"Show input Unicode codepoints",	NULL},
+    {"show-line-num",	0, 0,			  G_OPTION_ARG_NONE,	&this->show_line_num,		"Show line numbers",			NULL},
     {NULL}
   };
   parser->add_group (entries,
@@ -750,3 +751,36 @@
   }
   g_string_append_c (gs, '>');
 }
+void
+format_options_t::serialize_line_no (unsigned int  line_no,
+				     GString      *gs)
+{
+  if (show_line_num)
+    g_string_append_printf (gs, "%d: ", line_no);
+}
+void
+format_options_t::serialize_line (hb_buffer_t  *buffer,
+				  unsigned int  line_no,
+				  const char   *text,
+				  unsigned int  text_len,
+				  hb_font_t    *font,
+				  GString      *gs)
+{
+  if (show_text) {
+    serialize_line_no (line_no, gs);
+    g_string_append_len (gs, text, text_len);
+    g_string_append_c (gs, '\n');
+  }
+
+  if (show_unicode) {
+    serialize_line_no (line_no, gs);
+    hb_buffer_reset (scratch);
+    hb_buffer_add_utf8 (scratch, text, text_len, 0, -1);
+    serialize_unicode (buffer, gs);
+    g_string_append_c (gs, '\n');
+  }
+
+  serialize_line_no (line_no, gs);
+  serialize_glyphs (buffer, font, gs);
+  g_string_append_c (gs, '\n');
+}
diff --git a/util/options.hh b/util/options.hh
index 470a313..444569e 100644
--- a/util/options.hh
+++ b/util/options.hh
@@ -285,19 +285,31 @@
     show_clusters = true;
     show_text = false;
     show_unicode = false;
+    show_line_num = false;
+    scratch = hb_buffer_create ();
 
     add_options (parser);
   }
   ~format_options_t (void) {
+    hb_buffer_destroy (scratch);
   }
 
   void add_options (option_parser_t *parser);
 
-  void serialize_unicode (hb_buffer_t *buffer,
-			  GString     *gs);
-  void serialize_glyphs (hb_buffer_t *buffer,
-			 hb_font_t   *font,
-			 GString     *gs);
+  void serialize_unicode (hb_buffer_t  *buffer,
+			  GString      *gs);
+  void serialize_glyphs (hb_buffer_t  *buffer,
+			 hb_font_t    *font,
+			 GString      *gs);
+  void serialize_line_no (unsigned int  line_no,
+			  GString      *gs);
+  void serialize_line (hb_buffer_t  *buffer,
+		       unsigned int  line_no,
+		       const char   *text,
+		       unsigned int  text_len,
+		       hb_font_t    *font,
+		       GString      *gs);
+
 
   protected:
   hb_bool_t show_glyph_names;
@@ -305,6 +317,9 @@
   hb_bool_t show_clusters;
   hb_bool_t show_text;
   hb_bool_t show_unicode;
+  hb_bool_t show_line_num;
+  private:
+  hb_buffer_t *scratch;
 };
 
 
