diff --git a/lib/stepper/model_steps.rb b/lib/stepper/model_steps.rb
index <HASH>..<HASH> 100644
--- a/lib/stepper/model_steps.rb
+++ b/lib/stepper/model_steps.rb
@@ -45,7 +45,7 @@ module Stepper
         def current_step_validation
           return if stepper_current_step.blank?
           for i in 0..stepper_steps.index(stepper_current_step) do
-            self.send("validate_#{stepper_steps[i]}")
+            self.send("validate_#{stepper_steps[i]}") if self.respond_to?("validate_#{stepper_steps[i]}")
           end
         end
 
diff --git a/test/test_stepper.rb b/test/test_stepper.rb
index <HASH>..<HASH> 100644
--- a/test/test_stepper.rb
+++ b/test/test_stepper.rb
@@ -148,6 +148,27 @@ class TestStepper < Test::Unit::TestCase
                                               :code => ["is not a number"],
                                               :city => ["can't be blank"]}
       end
+
+      should "not run method if it doesn't exists" do
+         m = Module.new do
+          def validate_step1
+            self.validates_presence_of :name
+          end
+
+          def validate_step3
+            self.validates_presence_of :city
+          end
+        end
+
+        @order.extend m
+        @order.name = "name"
+        @order.city = "Kiev"
+        @order.my_step = "step3"
+
+        assert_nothing_raised NoMethodError do
+          @order.save!
+        end
+      end
     end
 
   end
doesn't run validation method if it doesn't exists