diff --git a/libseed/seed-types.c b/libseed/seed-types.c
index be763f2..3330170 100644
--- a/libseed/seed-types.c
+++ b/libseed/seed-types.c
@@ -459,6 +459,13 @@ seed_gi_make_argument (JSContextRef ctx,
   // can be null before doing this.
   if (!value || JSValueIsNull (ctx, value))
     {
+      
+      if (!g_arg_info_may_be_null ((GIArgInfo *) type_info)) 
+        {
+          // technically we should do more descriptive error message here.
+          return 0;
+        }
+
       arg->v_pointer = 0;
       return 1;
     }
