--- a/trunk/cforge/cforge/Package/CFORGE/Scripts/action.svn.checkout.py
+++ b/trunk/cforge/cforge/Package/CFORGE/Scripts/action.svn.checkout.py
@@ -3,33 +3,51 @@
 # set USER=<username>
 # set PASS=<password>
 # set URL=https://forge.codesys.com/svn/drv,gpio-mod,code/trunk/GPIOMods
-# "C:\Program Files (x86)\3S CODESYS-V3.5.12.0\CODESYS\Common\CODESYS.exe" --profile="CODESYS V3.5 SP12" --runscript="%WD%\action.svn.checkout.py" --scriptargs="%USER% %PASS% %URL% %WD%" --noUI
+# "C:\Program Files (x86)\3S CODESYS-V3.5.12.0\CODESYS\Common\CODESYS.exe" --profile="CODESYS V3.5 SP12" --runscript="%WD%\action.svn.checkout.py" --scriptargs="%URL% %USER% %PASS% %WD%" --noUI
 
 import sys
 import os.path
+import pysvn
 
-username=sys.argv[1]
-password=sys.argv[2]
-url=sys.argv[3]
-path=sys.argv[4]
-parts=os.path.basename(url).split(".")
-filebase=(parts[-1] if parts[-1] != "" else parts[-2])
+if len(sys.argv) <= 1:
+    print("usage: <url> [<user> <pass> <working dir>]")
+    sys.exit()
+
+url = sys.argv[1]
+
+if len(sys.argv) > 3:
+	username = sys.argv[2]
+	password = sys.argv[3]
+else:
+	credentials = system.ui.query_credentials("Enter SVN credentials")
+	username = credentials[0]
+	password = credentials[1]
+
+if len(sys.argv) > 4:
+	path = sys.argv[4]
+else:
+	path = system.ui.browse_directory_dialog("Choose a checkout folder")
 
 def set_username(req):
-    print_all(req)
     req.username = username
     req.password = password
     req.save = True # Optional
 
 svn.auth_username_password += set_username
+pysvn.svn_checkout_non_codesys(username, password, url, path)
+cdsprojects = pysvn.svn_get_directories_with_codesys_projects(username, password, url)
 
-# checkout as a library
-svn.checkout(url, path, filebase + ".library")
+for p in cdsprojects:
+	dirbase = path + "\\" + p.rstrip('/').replace("/", "\\")
+	filebase = os.path.basename(dirbase)
+	dir = os.path.dirname(dirbase)
+	svn.checkout(url + "/" + p, dir, filebase + ".library")
+	proj = projects.primary
+	if proj.find("Project Information"):
+		proj.save_as(dirbase + ".library")
+	else:
+		proj.save_as(dirbase + ".project")
+	proj.close()
+system.exit()
 
-# save as a library if, we find a "Project Information"
-# otherwhise we asume, that this is a project file
-proj = projects.primary
-if proj.find("Project Information"):
-	proj.save_as(path + '\\' + filebase + ".library")
-else:
-	proj.save_as(path + '\\' + filebase + ".project")
+