diff --git a/lib/nix/gem-nix-command.rb b/lib/nix/gem-nix-command.rb
index 8d3733e..ba942ff 100644
--- a/lib/nix/gem-nix-command.rb
+++ b/lib/nix/gem-nix-command.rb
@@ -108,11 +108,12 @@ class Gem::Commands::NixCommand < Gem::Command
 
       # args to dep informations
       args.each { |arg|
-        if arg =~ /(.+)-?(.*)?/ then
+        if arg =~ /(.+)-([0-9][^-]+)/ then
           gem_name = $1
-          version =  $2.empty? ?  Gem::Requirement.default : Gem::Version.new($2)
+          version =  Gem::Version.new($2)
         else
-          raise Gem::CommandLineError, "couldn't parse arg. expected: name or name-version"
+          gem_name = arg
+          version =  Gem::Requirement.default
         end
 
         adddep(Gem::Dependency.new gem_name, version)
@@ -162,7 +163,13 @@ class Gem::Commands::NixCommand < Gem::Command
     spec, source_uri = find_gem_with_source(dep)
     full_name = spec.full_name
 
-    return if @gems_with_deps.key?(full_name)
+    if @gems_with_deps.key?(full_name)
+      unless @gems_with_deps[full_name].nil?
+        return @gems_with_deps[full_name][0]
+      else
+        return nil
+      end
+    end
     @gems_with_deps[full_name] = nil # there maybe circular dependencies. thus mark this gem seen as early as possible
 
     # development deps can't be found. Some are old. Thus only add rutime dependencies
