diff --git a/lib/fuzzystringmatch.rb b/lib/fuzzystringmatch.rb
index <HASH>..<HASH> 100644
--- a/lib/fuzzystringmatch.rb
+++ b/lib/fuzzystringmatch.rb
@@ -20,7 +20,11 @@ begin
   if RUBY_PLATFORM == "java"
     STDERR.puts "fuzzy-string-match Warning: native version is disabled on java platform. falled back to pure ruby version..."
   else
-    require 'fuzzystringmatch/inline'
+    begin
+      require 'fuzzystringmatch/inline'
+    rescue CompilationError
+      STDERR.puts "fuzzy-string-match Warning: fallback into pure version, because compile failed."
+    end
   end
 rescue LoadError
 end
diff --git a/test/fallback_pure_spec.rb b/test/fallback_pure_spec.rb
index <HASH>..<HASH> 100644
--- a/test/fallback_pure_spec.rb
+++ b/test/fallback_pure_spec.rb
@@ -28,6 +28,8 @@ require 'inline'
 describe Inline, "when c compile failed, fall back into pure " do
   it "should" do
     pending ("because JRuby always in pure mode.") if (RUBY_PLATFORM == "java")
-    lambda { require 'fuzzystringmatch' }.should   raise_error( CompilationError )
+    lambda { require 'fuzzystringmatch' }.should_not   raise_error()
+
+    FuzzyStringMatch::JaroWinkler.create( :native ).pure?( ).should be_true
   end
 end
Commit in incomplete code.
Must make `ballback code`.