diff --git a/lib/geocoder/cli.rb b/lib/geocoder/cli.rb
index ab3df3b78b2ef6e97a32184212d5862bdec96293..f4832a15d39686081a34ca52ce732a5184099261 100644
--- a/lib/geocoder/cli.rb
+++ b/lib/geocoder/cli.rb
@@ -8,6 +8,11 @@ module Geocoder
       show_url  = false
       show_json = false
 
+      # remove arguments that are probably coordinates so they are not
+      # processed as arguments (eg: -31.96047031,115.84274631)
+      coords = args.select{ |i| i.match(/^-\d/) }
+      args -= coords
+
       OptionParser.new{ |opts|
         opts.banner = "Usage:\n    geocode [options] <location>"
         opts.separator "\nOptions: "
@@ -65,7 +70,9 @@ module Geocoder
         end
       }.parse!(args)
 
-      query = args.join(" ")
+      # concatenate args with coords that might have been removed
+      # before option processing
+      query = (args + coords).join(" ")
 
       if query == ""
         out << "Please specify a location (run `geocode -h` for more info).\n"