Adjust json_object_is_type and json_object_get_type so they return json_type_null for NULL objects.
diff --git a/json_object.c b/json_object.c
index 7848630..ef54ecd 100644
--- a/json_object.c
+++ b/json_object.c
@@ -166,11 +166,15 @@
 
 int json_object_is_type(struct json_object *jso, enum json_type type)
 {
+  if (!jso)
+    return (type == json_type_null);
   return (jso->o_type == type);
 }
 
 enum json_type json_object_get_type(struct json_object *jso)
 {
+  if (!jso)
+    return json_type_null;
   return jso->o_type;
 }
 
diff --git a/json_object.h b/json_object.h
index 1ee9fb0..e9898f4 100644
--- a/json_object.h
+++ b/json_object.h
@@ -79,6 +79,7 @@
  * Check if the json_object is of a given type
  * @param obj the json_object instance
  * @param type one of:
+     json_type_null (i.e. obj == NULL),
      json_type_boolean,
      json_type_double,
      json_type_int,
@@ -92,6 +93,7 @@
  * Get the type of the json_object
  * @param obj the json_object instance
  * @returns type being one of:
+     json_type_null (i.e. obj == NULL),
      json_type_boolean,
      json_type_double,
      json_type_int,
diff --git a/test_cast.c b/test_cast.c
index 6459250..aad44d0 100644
--- a/test_cast.c
+++ b/test_cast.c
@@ -1,5 +1,6 @@
 /*
  * Tests if casting within the json_object_get_* functions work correctly.
+ * Also checks the json_object_get_type and json_object_is_type functions.
  */
 
 #include <stdio.h>
@@ -13,6 +14,8 @@
 #include "json_util.h"
 
 static void getit(struct json_object *new_obj, const char *field);
+static void checktype_header(void);
+static void checktype(struct json_object *new_obj, const char *field);
 
 int main(int argc, char **argv)
 {
@@ -23,6 +26,7 @@
 		\"boolean_true\": true,\n\
 		\"boolean_false\": false,\n\
 		\"big_number\": 2147483649,\n\
+		\"a_null\": null,\n\
 	}";
 	/* Note: 2147483649 = INT_MAX + 2 */
 
@@ -40,6 +44,19 @@
 	getit(new_obj, "boolean_true");
 	getit(new_obj, "boolean_false");
 	getit(new_obj, "big_number");
+	getit(new_obj, "a_null");
+
+	// Now check the behaviour of the json_object_is_type() function.
+	printf("\n================================\n");
+	checktype_header();
+	checktype(new_obj, NULL);
+	checktype(new_obj, "string_of_digits");
+	checktype(new_obj, "regular_number");
+	checktype(new_obj, "decimal_number");
+	checktype(new_obj, "boolean_true");
+	checktype(new_obj, "boolean_false");
+	checktype(new_obj, "big_number");
+	checktype(new_obj, "a_null");
 
     json_object_put(new_obj);
 
@@ -62,3 +79,28 @@
 	printf("new_obj.%s json_object_get_double()=%f\n", field,
 	       json_object_get_double(o));
 }
+
+static void checktype_header()
+{
+	printf("json_object_is_type: %s,%s,%s,%s,%s,%s,%s\n",
+		json_type_to_name(json_type_null),
+		json_type_to_name(json_type_boolean),
+		json_type_to_name(json_type_double),
+		json_type_to_name(json_type_int),
+		json_type_to_name(json_type_object),
+		json_type_to_name(json_type_array),
+		json_type_to_name(json_type_string));
+}
+static void checktype(struct json_object *new_obj, const char *field)
+{
+	struct json_object *o = field ? json_object_object_get(new_obj, field) : new_obj;
+	printf("new_obj%s%-18s: %d,%d,%d,%d,%d,%d,%d\n",
+		field ? "." : " ", field ? field : "",
+		json_object_is_type(o, json_type_null),
+		json_object_is_type(o, json_type_boolean),
+		json_object_is_type(o, json_type_double),
+		json_object_is_type(o, json_type_int),
+		json_object_is_type(o, json_type_object),
+		json_object_is_type(o, json_type_array),
+		json_object_is_type(o, json_type_string));
+}
diff --git a/test_cast.expected b/test_cast.expected
index d079e04..76ff823 100644
--- a/test_cast.expected
+++ b/test_cast.expected
@@ -5,6 +5,7 @@
 		"boolean_true": true,
 		"boolean_false": false,
 		"big_number": 2147483649,
+		"a_null": null,
 	}
 Result is not NULL
 new_obj.string_of_digits json_object_get_type()=string
@@ -37,3 +38,19 @@
 new_obj.big_number json_object_get_int64()=2147483649
 new_obj.big_number json_object_get_boolean()=1
 new_obj.big_number json_object_get_double()=2147483649.000000
+new_obj.a_null json_object_get_type()=null
+new_obj.a_null json_object_get_int()=0
+new_obj.a_null json_object_get_int64()=0
+new_obj.a_null json_object_get_boolean()=0
+new_obj.a_null json_object_get_double()=0.000000
+
+================================
+json_object_is_type: null,boolean,double,int,object,array,string
+new_obj                   : 0,0,0,0,1,0,0
+new_obj.string_of_digits  : 0,0,0,0,0,0,1
+new_obj.regular_number    : 0,0,0,1,0,0,0
+new_obj.decimal_number    : 0,0,1,0,0,0,0
+new_obj.boolean_true      : 0,1,0,0,0,0,0
+new_obj.boolean_false     : 0,1,0,0,0,0,0
+new_obj.big_number        : 0,0,0,1,0,0,0
+new_obj.a_null            : 1,0,0,0,0,0,0