diff --git a/GI/GObject.hs b/GI/GObject.hs
--- a/GI/GObject.hs
+++ b/GI/GObject.hs
@@ -168,6 +168,7 @@
 bindingGetSource _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_source _obj'
+    checkUnexpectedReturnNULL "g_binding_get_source" result
     result' <- (newObject Object) result
     touchManagedPtr _obj
     return result'
@@ -193,6 +194,7 @@
 bindingGetSourceProperty _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_source_property _obj'
+    checkUnexpectedReturnNULL "g_binding_get_source_property" result
     result' <- cstringToText result
     touchManagedPtr _obj
     return result'
@@ -218,6 +220,7 @@
 bindingGetTarget _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_target _obj'
+    checkUnexpectedReturnNULL "g_binding_get_target" result
     result' <- (newObject Object) result
     touchManagedPtr _obj
     return result'
@@ -243,6 +246,7 @@
 bindingGetTargetProperty _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_target_property _obj'
+    checkUnexpectedReturnNULL "g_binding_get_target_property" result
     result' <- cstringToText result
     touchManagedPtr _obj
     return result'
@@ -817,6 +821,7 @@
     let parameters' = map unsafeManagedPtrGetPtr parameters
     parameters'' <- packBlockArray 32 parameters'
     result <- g_object_newv object_type' n_parameters parameters''
+    checkUnexpectedReturnNULL "g_object_newv" result
     result' <- (wrapObject Object) result
     mapM_ touchManagedPtr parameters
     freeMem parameters''
@@ -855,6 +860,7 @@
     target_property' <- textToCString target_property
     let flags' = gflagsToWord flags
     result <- g_object_bind_property _obj' source_property' target' target_property' flags'
+    checkUnexpectedReturnNULL "g_object_bind_property" result
     result' <- (newObject Binding) result
     touchManagedPtr _obj
     touchManagedPtr target
@@ -901,6 +907,7 @@
     let transform_to' = unsafeManagedPtrGetPtr transform_to
     let transform_from' = unsafeManagedPtrGetPtr transform_from
     result <- g_object_bind_property_with_closures _obj' source_property' target' target_property' flags' transform_to' transform_from'
+    checkUnexpectedReturnNULL "g_object_bind_property_with_closures" result
     result' <- (newObject Binding) result
     touchManagedPtr _obj
     touchManagedPtr target
@@ -1145,6 +1152,7 @@
 objectRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_object_ref _obj'
+    checkUnexpectedReturnNULL "g_object_ref" result
     result' <- (newObject Object) result
     touchManagedPtr _obj
     return result'
@@ -1170,6 +1178,7 @@
 objectRefSink _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_object_ref_sink _obj'
+    checkUnexpectedReturnNULL "g_object_ref_sink" result
     result' <- (newObject Object) result
     touchManagedPtr _obj
     return result'
@@ -1213,14 +1222,14 @@
         Nothing -> return nullPtr
         Just jNewval -> do
             return jNewval
-    ptrdestroy <- callocBytes $ sizeOf (undefined :: FunPtr GLib.DestroyNotifyC)
+    ptrdestroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
     maybeDestroy <- case destroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
         Just jDestroy -> do
             jDestroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrdestroy) jDestroy)
             poke ptrdestroy jDestroy'
             return jDestroy'
-    ptrold_destroy <- callocBytes $ sizeOf (undefined :: FunPtr GLib.DestroyNotifyC)
+    ptrold_destroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
     maybeOld_destroy <- case old_destroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
         Just jOld_destroy -> do
@@ -1271,14 +1280,14 @@
         Nothing -> return nullPtr
         Just jNewval -> do
             return jNewval
-    ptrdestroy <- callocBytes $ sizeOf (undefined :: FunPtr GLib.DestroyNotifyC)
+    ptrdestroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
     maybeDestroy <- case destroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
         Just jDestroy -> do
             jDestroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrdestroy) jDestroy)
             poke ptrdestroy jDestroy'
             return jDestroy'
-    ptrold_destroy <- callocBytes $ sizeOf (undefined :: FunPtr GLib.DestroyNotifyC)
+    ptrold_destroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
     maybeOld_destroy <- case old_destroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
         Just jOld_destroy -> do
@@ -1553,6 +1562,7 @@
 objectInterfaceFindProperty g_iface property_name = liftIO $ do
     property_name' <- textToCString property_name
     result <- g_object_interface_find_property g_iface property_name'
+    checkUnexpectedReturnNULL "g_object_interface_find_property" result
     result' <- newGParamSpecFromPtr result
     freeMem property_name'
     return result'
@@ -1861,6 +1871,7 @@
     let _obj' = unsafeManagedPtrGetPtr _obj
     let owner_type' = gtypeToCGType owner_type
     result <- g_param_spec_pool_list_owned _obj' owner_type'
+    checkUnexpectedReturnNULL "g_param_spec_pool_list_owned" result
     result' <- unpackGList result
     result'' <- mapM newGParamSpecFromPtr result'
     g_list_free result
@@ -1897,6 +1908,7 @@
     let owner_type' = gtypeToCGType owner_type
     let walk_ancestors' = (fromIntegral . fromEnum) walk_ancestors
     result <- g_param_spec_pool_lookup _obj' param_name' owner_type' walk_ancestors'
+    checkUnexpectedReturnNULL "g_param_spec_pool_lookup" result
     result' <- newGParamSpecFromPtr result
     touchManagedPtr _obj
     freeMem param_name'
@@ -2286,6 +2298,7 @@
 typeClassPeekParent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_type_class_peek_parent _obj'
+    checkUnexpectedReturnNULL "g_type_class_peek_parent" result
     result' <- (newPtr 8 TypeClass) result
     touchManagedPtr _obj
     return result'
@@ -2503,6 +2516,7 @@
 typeInterfacePeekParent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_type_interface_peek_parent _obj'
+    checkUnexpectedReturnNULL "g_type_interface_peek_parent" result
     result' <- (newPtr 16 TypeInterface) result
     touchManagedPtr _obj
     return result'
@@ -3023,6 +3037,7 @@
     m ValueArray
 valueArrayNew n_prealloced = liftIO $ do
     result <- g_value_array_new n_prealloced
+    checkUnexpectedReturnNULL "g_value_array_new" result
     result' <- (wrapBoxed ValueArray) result
     return result'
 
@@ -3054,6 +3069,7 @@
             let jValue' = unsafeManagedPtrGetPtr jValue
             return jValue'
     result <- g_value_array_append _obj' maybeValue
+    checkUnexpectedReturnNULL "g_value_array_append" result
     result' <- (newBoxed ValueArray) result
     touchManagedPtr _obj
     whenJust value touchManagedPtr
@@ -3080,6 +3096,7 @@
 valueArrayCopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_value_array_copy _obj'
+    checkUnexpectedReturnNULL "g_value_array_copy" result
     result' <- (wrapBoxed ValueArray) result
     touchManagedPtr _obj
     return result'
@@ -3131,6 +3148,7 @@
 valueArrayGetNth _obj index_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_value_array_get_nth _obj' index_
+    checkUnexpectedReturnNULL "g_value_array_get_nth" result
     result' <- (newBoxed GValue) result
     touchManagedPtr _obj
     return result'
@@ -3165,6 +3183,7 @@
             let jValue' = unsafeManagedPtrGetPtr jValue
             return jValue'
     result <- g_value_array_insert _obj' index_ maybeValue
+    checkUnexpectedReturnNULL "g_value_array_insert" result
     result' <- (newBoxed ValueArray) result
     touchManagedPtr _obj
     whenJust value touchManagedPtr
@@ -3198,6 +3217,7 @@
             let jValue' = unsafeManagedPtrGetPtr jValue
             return jValue'
     result <- g_value_array_prepend _obj' maybeValue
+    checkUnexpectedReturnNULL "g_value_array_prepend" result
     result' <- (newBoxed ValueArray) result
     touchManagedPtr _obj
     whenJust value touchManagedPtr
@@ -3226,6 +3246,7 @@
 valueArrayRemove _obj index_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_value_array_remove _obj' index_
+    checkUnexpectedReturnNULL "g_value_array_remove" result
     result' <- (newBoxed ValueArray) result
     touchManagedPtr _obj
     return result'
@@ -3256,6 +3277,7 @@
     compare_func' <- GLib.mkCompareDataFunc (GLib.compareDataFuncWrapper Nothing compare_func)
     let user_data = nullPtr
     result <- g_value_array_sort_with_data _obj' compare_func' user_data
+    checkUnexpectedReturnNULL "g_value_array_sort_with_data" result
     result' <- (newBoxed ValueArray) result
     safeFreeFunPtr $ castFunPtrToPtr compare_func'
     touchManagedPtr _obj
@@ -4393,6 +4415,7 @@
 enumGetValue enum_class value = liftIO $ do
     let enum_class' = unsafeManagedPtrGetPtr enum_class
     result <- g_enum_get_value enum_class' value
+    checkUnexpectedReturnNULL "g_enum_get_value" result
     result' <- (newPtr 24 EnumValue) result
     touchManagedPtr enum_class
     return result'
@@ -4420,6 +4443,7 @@
     let enum_class' = unsafeManagedPtrGetPtr enum_class
     name' <- textToCString name
     result <- g_enum_get_value_by_name enum_class' name'
+    checkUnexpectedReturnNULL "g_enum_get_value_by_name" result
     result' <- (newPtr 24 EnumValue) result
     touchManagedPtr enum_class
     freeMem name'
@@ -4448,6 +4472,7 @@
     let enum_class' = unsafeManagedPtrGetPtr enum_class
     nick' <- textToCString nick
     result <- g_enum_get_value_by_nick enum_class' nick'
+    checkUnexpectedReturnNULL "g_enum_get_value_by_nick" result
     result' <- (newPtr 24 EnumValue) result
     touchManagedPtr enum_class
     freeMem nick'
@@ -4532,6 +4557,7 @@
 flagsGetFirstValue flags_class value = liftIO $ do
     let flags_class' = unsafeManagedPtrGetPtr flags_class
     result <- g_flags_get_first_value flags_class' value
+    checkUnexpectedReturnNULL "g_flags_get_first_value" result
     result' <- (newPtr 24 FlagsValue) result
     touchManagedPtr flags_class
     return result'
@@ -4559,6 +4585,7 @@
     let flags_class' = unsafeManagedPtrGetPtr flags_class
     name' <- textToCString name
     result <- g_flags_get_value_by_name flags_class' name'
+    checkUnexpectedReturnNULL "g_flags_get_value_by_name" result
     result' <- (newPtr 24 FlagsValue) result
     touchManagedPtr flags_class
     freeMem name'
@@ -4587,6 +4614,7 @@
     let flags_class' = unsafeManagedPtrGetPtr flags_class
     nick' <- textToCString nick
     result <- g_flags_get_value_by_nick flags_class' nick'
+    checkUnexpectedReturnNULL "g_flags_get_value_by_nick" result
     result' <- (newPtr 24 FlagsValue) result
     touchManagedPtr flags_class
     freeMem nick'
@@ -4672,6 +4700,7 @@
     let default_value' = (fromIntegral . fromEnum) default_value
     let flags' = gflagsToWord flags
     result <- g_param_spec_boolean name' nick' blurb' default_value' flags'
+    checkUnexpectedReturnNULL "g_param_spec_boolean" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4710,6 +4739,7 @@
     let boxed_type' = gtypeToCGType boxed_type
     let flags' = gflagsToWord flags
     result <- g_param_spec_boxed name' nick' blurb' boxed_type' flags'
+    checkUnexpectedReturnNULL "g_param_spec_boxed" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4751,6 +4781,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_char name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_char" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4795,6 +4826,7 @@
     let default_value' = realToFrac default_value
     let flags' = gflagsToWord flags
     result <- g_param_spec_double name' nick' blurb' minimum' maximum' default_value' flags'
+    checkUnexpectedReturnNULL "g_param_spec_double" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4835,6 +4867,7 @@
     let enum_type' = gtypeToCGType enum_type
     let flags' = gflagsToWord flags
     result <- g_param_spec_enum name' nick' blurb' enum_type' default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_enum" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4875,6 +4908,7 @@
     let flags_type' = gtypeToCGType flags_type
     let flags' = gflagsToWord flags
     result <- g_param_spec_flags name' nick' blurb' flags_type' default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_flags" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4919,6 +4953,7 @@
     let default_value' = realToFrac default_value
     let flags' = gflagsToWord flags
     result <- g_param_spec_float name' nick' blurb' minimum' maximum' default_value' flags'
+    checkUnexpectedReturnNULL "g_param_spec_float" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4957,6 +4992,7 @@
     let is_a_type' = gtypeToCGType is_a_type
     let flags' = gflagsToWord flags
     result <- g_param_spec_gtype name' nick' blurb' is_a_type' flags'
+    checkUnexpectedReturnNULL "g_param_spec_gtype" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -4998,6 +5034,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_int name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_int" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5039,6 +5076,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_int64 name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_int64" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5080,6 +5118,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_long name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_long" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5118,6 +5157,7 @@
     let object_type' = gtypeToCGType object_type
     let flags' = gflagsToWord flags
     result <- g_param_spec_object name' nick' blurb' object_type' flags'
+    checkUnexpectedReturnNULL "g_param_spec_object" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5156,6 +5196,7 @@
     let param_type' = gtypeToCGType param_type
     let flags' = gflagsToWord flags
     result <- g_param_spec_param name' nick' blurb' param_type' flags'
+    checkUnexpectedReturnNULL "g_param_spec_param" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5191,6 +5232,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_pointer name' nick' blurb' flags'
+    checkUnexpectedReturnNULL "g_param_spec_pointer" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5217,6 +5259,7 @@
 paramSpecPoolNew type_prefixing = liftIO $ do
     let type_prefixing' = (fromIntegral . fromEnum) type_prefixing
     result <- g_param_spec_pool_new type_prefixing'
+    checkUnexpectedReturnNULL "g_param_spec_pool_new" result
     -- XXX Wrapping a foreign struct/union with no known destructor, leak?
     result' <- (\x -> ParamSpecPool <$> newForeignPtr_ x) result
     return result'
@@ -5253,6 +5296,7 @@
     default_value' <- textToCString default_value
     let flags' = gflagsToWord flags
     result <- g_param_spec_string name' nick' blurb' default_value' flags'
+    checkUnexpectedReturnNULL "g_param_spec_string" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5295,6 +5339,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_uchar name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_uchar" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5336,6 +5381,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_uint name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_uint" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5377,6 +5423,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_uint64 name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_uint64" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5418,6 +5465,7 @@
     blurb' <- textToCString blurb
     let flags' = gflagsToWord flags
     result <- g_param_spec_ulong name' nick' blurb' minimum maximum default_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_ulong" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5456,6 +5504,7 @@
     let default_value' = (fromIntegral . ord) default_value
     let flags' = gflagsToWord flags
     result <- g_param_spec_unichar name' nick' blurb' default_value' flags'
+    checkUnexpectedReturnNULL "g_param_spec_unichar" result
     result' <- wrapGParamSpecPtr result
     freeMem name'
     freeMem nick'
@@ -5501,6 +5550,7 @@
             return jDefault_value'
     let flags' = gflagsToWord flags
     result <- g_param_spec_variant name' nick' blurb' type_' maybeDefault_value flags'
+    checkUnexpectedReturnNULL "g_param_spec_variant" result
     result' <- wrapGParamSpecPtr result
     touchManagedPtr type_
     freeMem name'
@@ -5944,6 +5994,7 @@
 signalGetInvocationHint instance_ = liftIO $ do
     let instance_' = unsafeManagedPtrCastPtr instance_
     result <- g_signal_get_invocation_hint instance_'
+    checkUnexpectedReturnNULL "g_signal_get_invocation_hint" result
     result' <- (newPtr 12 SignalInvocationHint) result
     touchManagedPtr instance_
     return result'
@@ -6294,6 +6345,7 @@
     n_ids <- allocMem :: IO (Ptr Word32)
     result <- g_signal_list_ids itype' n_ids
     n_ids' <- peek n_ids
+    checkUnexpectedReturnNULL "g_signal_list_ids" result
     result' <- (unpackStorableArrayWithLength n_ids') result
     freeMem n_ids
     return result'
@@ -6343,6 +6395,7 @@
     m T.Text
 signalName signal_id = liftIO $ do
     result <- g_signal_name signal_id
+    checkUnexpectedReturnNULL "g_signal_name" result
     result' <- cstringToText result
     return result'
 
@@ -6535,6 +6588,7 @@
 signalTypeCclosureNew itype struct_offset = liftIO $ do
     let itype' = gtypeToCGType itype
     result <- g_signal_type_cclosure_new itype' struct_offset
+    checkUnexpectedReturnNULL "g_signal_type_cclosure_new" result
     result' <- (wrapBoxed Closure) result
     return result'
 
@@ -6608,6 +6662,7 @@
 strdupValueContents value = liftIO $ do
     let value' = unsafeManagedPtrGetPtr value
     result <- g_strdup_value_contents value'
+    checkUnexpectedReturnNULL "g_strdup_value_contents" result
     result' <- cstringToText result
     freeMem result
     touchManagedPtr value
@@ -6921,6 +6976,7 @@
     n_children <- allocMem :: IO (Ptr Word32)
     result <- g_type_children type_' n_children
     n_children' <- peek n_children
+    checkUnexpectedReturnNULL "g_type_children" result
     result' <- (unpackMapStorableArrayWithLength GType n_children') result
     freeMem result
     freeMem n_children
@@ -6992,6 +7048,7 @@
 typeClassPeek type_ = liftIO $ do
     let type_' = gtypeToCGType type_
     result <- g_type_class_peek type_'
+    checkUnexpectedReturnNULL "g_type_class_peek" result
     result' <- (newPtr 8 TypeClass) result
     return result'
 
@@ -7015,6 +7072,7 @@
 typeClassPeekStatic type_ = liftIO $ do
     let type_' = gtypeToCGType type_
     result <- g_type_class_peek_static type_'
+    checkUnexpectedReturnNULL "g_type_class_peek_static" result
     result' <- (newPtr 8 TypeClass) result
     return result'
 
@@ -7038,6 +7096,7 @@
 typeClassRef type_ = liftIO $ do
     let type_' = gtypeToCGType type_
     result <- g_type_class_ref type_'
+    checkUnexpectedReturnNULL "g_type_class_ref" result
     result' <- (newPtr 8 TypeClass) result
     return result'
 
@@ -7061,6 +7120,7 @@
 typeDefaultInterfacePeek g_type = liftIO $ do
     let g_type' = gtypeToCGType g_type
     result <- g_type_default_interface_peek g_type'
+    checkUnexpectedReturnNULL "g_type_default_interface_peek" result
     result' <- (newPtr 16 TypeInterface) result
     return result'
 
@@ -7084,6 +7144,7 @@
 typeDefaultInterfaceRef g_type = liftIO $ do
     let g_type' = gtypeToCGType g_type
     result <- g_type_default_interface_ref g_type'
+    checkUnexpectedReturnNULL "g_type_default_interface_ref" result
     result' <- (newPtr 16 TypeInterface) result
     return result'
 
@@ -7404,6 +7465,7 @@
     let instance_class' = unsafeManagedPtrGetPtr instance_class
     let iface_type' = gtypeToCGType iface_type
     result <- g_type_interface_peek instance_class' iface_type'
+    checkUnexpectedReturnNULL "g_type_interface_peek" result
     result' <- (newPtr 16 TypeInterface) result
     touchManagedPtr instance_class
     return result'
@@ -7431,6 +7493,7 @@
     n_prerequisites <- allocMem :: IO (Ptr Word32)
     result <- g_type_interface_prerequisites interface_type' n_prerequisites
     n_prerequisites' <- peek n_prerequisites
+    checkUnexpectedReturnNULL "g_type_interface_prerequisites" result
     result' <- (unpackMapStorableArrayWithLength GType n_prerequisites') result
     freeMem result
     freeMem n_prerequisites
@@ -7459,6 +7522,7 @@
     n_interfaces <- allocMem :: IO (Ptr Word32)
     result <- g_type_interfaces type_' n_interfaces
     n_interfaces' <- peek n_interfaces
+    checkUnexpectedReturnNULL "g_type_interfaces" result
     result' <- (unpackMapStorableArrayWithLength GType n_interfaces') result
     freeMem result
     freeMem n_interfaces
@@ -7510,6 +7574,7 @@
 typeName type_ = liftIO $ do
     let type_' = gtypeToCGType type_
     result <- g_type_name type_'
+    checkUnexpectedReturnNULL "g_type_name" result
     result' <- cstringToText result
     return result'
 
@@ -7533,6 +7598,7 @@
 typeNameFromClass g_class = liftIO $ do
     let g_class' = unsafeManagedPtrGetPtr g_class
     result <- g_type_name_from_class g_class'
+    checkUnexpectedReturnNULL "g_type_name_from_class" result
     result' <- cstringToText result
     touchManagedPtr g_class
     return result'
@@ -7557,6 +7623,7 @@
 typeNameFromInstance instance_ = liftIO $ do
     let instance_' = unsafeManagedPtrGetPtr instance_
     result <- g_type_name_from_instance instance_'
+    checkUnexpectedReturnNULL "g_type_name_from_instance" result
     result' <- cstringToText result
     touchManagedPtr instance_
     return result'
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -454,49 +454,3 @@
 FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
-
-                     END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Libraries
-
-  If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change.  You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
-  To apply these terms, attach the following notices to the library.  It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the library's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This library is free software; you can redistribute it and/or
-    modify it under the terms of the GNU Lesser General Public
-    License as published by the Free Software Foundation; either
-    version 2.1 of the License, or (at your option) any later version.
-
-    This library is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-    Lesser General Public License for more details.
-
-    You should have received a copy of the GNU Lesser General Public
-    License along with this library; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the
-  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
-  <signature of Ty Coon>, 1 April 1990
-  Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/gi-gobject.cabal b/gi-gobject.cabal
--- a/gi-gobject.cabal
+++ b/gi-gobject.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-gobject
-version:            0.2.44.9
+version:            0.2.44.10
 synopsis:           GObject bindings
 description:        Bindings for GObject, autogenerated by haskell-gi.
 homepage:           https://github.com/haskell-gi/haskell-gi
@@ -17,8 +17,8 @@
     exposed-modules:    GI.GObject, GI.GObjectAttributes, GI.GObjectSignals
     pkgconfig-depends:  gobject-2.0 >= 2.44
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.9 && < 1,
-        gi-glib >= 0.2.44.9 && < 0.3,
+        haskell-gi-base >= 0.10 && < 1,
+        gi-glib >= 0.2.44.10 && < 0.3,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
