diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index c79d0fc..c52c5f7 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -30,16 +30,18 @@
 
 
 /* buffer var allocations */
-#define indic_categories() var2.u32 /* indic shaping action */
+#define indic_category() var2.u8[0] /* indic_category_t */
+#define indic_position() var2.u8[1] /* indic_matra_category_t */
 
 #define INDIC_TABLE_ELEMENT_TYPE uint8_t
 
 /* Cateories used in the OpenType spec:
  * https://www.microsoft.com/typography/otfntdev/devanot/shaping.aspx
  */
-enum {
+enum indic_category_t {
   OT_X = 0,
   OT_C,
+  OT_Ra,
   OT_V,
   OT_N,
   OT_H,
@@ -147,9 +149,8 @@
 };
 
 
-
 void
-_hb_ot_shape_complex_collect_features_indic	(hb_ot_shape_planner_t *planner, const hb_segment_properties_t  *props HB_UNUSED)
+_hb_ot_shape_complex_collect_features_indic (hb_ot_shape_planner_t *planner, const hb_segment_properties_t *props HB_UNUSED)
 {
   for (unsigned int i = 0; i < ARRAY_LENGTH (indic_basic_features); i++)
     planner->map.add_bool_feature (indic_basic_features[i], false);
@@ -158,6 +159,11 @@
     planner->map.add_bool_feature (indic_other_features[i], true);
 }
 
+
+
+#include "hb-ot-shape-complex-indic-machine.hh"
+
+
 void
 _hb_ot_shape_complex_setup_masks_indic	(hb_ot_shape_context_t *c)
 {
@@ -165,11 +171,14 @@
 
   for (unsigned int i = 0; i < count; i++)
   {
-    unsigned int this_type = get_indic_categories (c->buffer->info[i].codepoint);
+    unsigned int type = get_indic_categories (c->buffer->info[i].codepoint);
 
-    c->buffer->info[i].indic_categories() = this_type;
+    c->buffer->info[i].indic_category() = type & 0x0F;
+    c->buffer->info[i].indic_position() = type >> 4;
   }
 
+  find_syllables (c);
+
   hb_mask_t mask_array[ARRAY_LENGTH (indic_basic_features)] = {0};
   unsigned int num_masks = ARRAY_LENGTH (indic_basic_features);
   for (unsigned int i = 0; i < num_masks; i++)
