diff --git a/src/Paket.Core/Versioning/PackageSources.fs b/src/Paket.Core/Versioning/PackageSources.fs
index 3d5925105a..71dc1d49c4 100644
--- a/src/Paket.Core/Versioning/PackageSources.fs
+++ b/src/Paket.Core/Versioning/PackageSources.fs
@@ -150,7 +150,7 @@ type PackageSource =
#endif
LocalNuGet(source,None)
else
- if String.endsWithIgnoreCase "v3/index.json" source then
+ if Regex("/v3(?:/[-\w]+)?/index.json$").IsMatch source then
NuGetV3 { Url = source; Authentication = auth }
else
NuGetV2 { Url = source; Authentication = auth }
diff --git a/tests/Paket.Tests/Paket.Tests.fsproj b/tests/Paket.Tests/Paket.Tests.fsproj
index 241fa7fa90..19a579cdff 100644
--- a/tests/Paket.Tests/Paket.Tests.fsproj
+++ b/tests/Paket.Tests/Paket.Tests.fsproj
@@ -76,6 +76,7 @@
True
FsUnit.fs
+
diff --git a/tests/Paket.Tests/Versioning/PackageSourceSpecs.fs b/tests/Paket.Tests/Versioning/PackageSourceSpecs.fs
new file mode 100644
index 0000000000..982e80a473
--- /dev/null
+++ b/tests/Paket.Tests/Versioning/PackageSourceSpecs.fs
@@ -0,0 +1,40 @@
+module Paket.PackageSourceSpecs
+
+open Paket
+open NUnit.Framework
+open FsUnit
+open Paket.Domain
+open Paket.PackageSources
+
+[]
+[]
+[]
+[]
+[]
+[]
+let ``should parse known nuget2 source``(feed : string) =
+ let line = sprintf "source %s" feed
+ match PackageSource.Parse(line) with
+ | NuGetV2 { Url = source; Authentication = _ } ->
+ let quoted = sprintf "source \"%s\"" feed
+ match PackageSource.Parse(quoted) with
+ | NuGetV2 { Url = qsource; Authentication = _ } ->
+ source |> shouldEqual qsource
+ | _ -> failwith quoted
+ | _ -> failwith feed
+
+[]
+[]
+[]
+[]
+[]
+let ``should parse known nuget3 source``(feed : string) =
+ let line = sprintf "source %s" feed
+ match PackageSource.Parse(line) with
+ | NuGetV3 { Url = source; Authentication = _ } ->
+ let quoted = sprintf "source \"%s\"" feed
+ match PackageSource.Parse(quoted) with
+ | NuGetV3 { Url = qsource; Authentication = _ } ->
+ source |> shouldEqual qsource
+ | _ -> failwith quoted
+ | _ -> failwith feed
\ No newline at end of file