diff --git a/lib/sass/script/funcall.rb b/lib/sass/script/funcall.rb
index <HASH>..<HASH> 100644
--- a/lib/sass/script/funcall.rb
+++ b/lib/sass/script/funcall.rb
@@ -145,10 +145,10 @@ module Sass
 
       def perform_sass_fn(function, args, keywords)
         # TODO: merge with mixin arg evaluation?
-        keywords.each do |name, value|
-          # TODO: Make this fast
-          unless function.args.find {|(var, default)| var.underscored_name == name}
-            raise Sass::SyntaxError.new("Function #{@name} doesn't have an argument named $#{name}")
+        if keywords.any?
+          unknown_args = keywords.keys - function.args.map {|var| var.first.underscored_name }
+          if unknown_args.any?
+            raise Sass::SyntaxError.new("Function #{@name} doesn't have an arguments: #{unknwon_args.map{|name| "$#{name}"}}")
           end
         end
A bit faster (for most cases) check for unknwon named argments in function call