diff --git a/spec/therubyracer_spec.rb b/spec/therubyracer_spec.rb
index ac1733c..406a27b 100644
--- a/spec/therubyracer_spec.rb
+++ b/spec/therubyracer_spec.rb
@@ -13,7 +13,6 @@ describe "The Ruby Racer" do
     end
     
     it "passes back undefined value as nil" do
-      pending "This currently causes a segmentation fault..."
       eval("this.undefined").should be_nil
     end
     
diff --git a/v8_data.h b/v8_data.h
index dd2c083..112de75 100644
--- a/v8_data.h
+++ b/v8_data.h
@@ -18,10 +18,14 @@ template<class T, class R> class V8HandleSource {
 
   R push(v8::Handle<v8::Value>& value, const char* name = 0) {
 
-    if(value->IsNull()) {
+    if (value->IsUndefined()) {
       return dest.pushNull(name);
     }
 
+    if(value->IsNull()) {
+      return dest.pushNull(name);
+    }
+    
     if(value->IsTrue()) {
       return dest.pushBool(true, name);
     }