Protect against NULL funcs
diff --git a/src/hb-buffer.c b/src/hb-buffer.c
index 9d4d518..4dd18ed 100644
--- a/src/hb-buffer.c
+++ b/src/hb-buffer.c
@@ -121,6 +121,9 @@
 hb_buffer_set_unicode_funcs (hb_buffer_t        *buffer,
 			     hb_unicode_funcs_t *unicode)
 {
+  if (!unicode)
+    unicode = &_hb_unicode_funcs_nil;
+
   hb_unicode_funcs_reference (unicode);
   hb_unicode_funcs_destroy (buffer->unicode);
   buffer->unicode = unicode;
diff --git a/src/hb-font.cc b/src/hb-font.cc
index 1cffc91..b284477 100644
--- a/src/hb-font.cc
+++ b/src/hb-font.cc
@@ -385,6 +385,9 @@
   if (font->destroy)
     font->destroy (font->user_data);
 
+  if (!klass)
+    klass = &_hb_font_funcs_nil;
+
   hb_font_funcs_reference (klass);
   hb_font_funcs_destroy (font->klass);
   font->klass = klass;