diff --git a/openbis_standard_technologies/build.gradle b/openbis_standard_technologies/build.gradle
index 0022c15a43296619c1422ff7451481f96bb1efc8..31c74b6f84b12e526a357a97eed667fae2199af5 100644
--- a/openbis_standard_technologies/build.gradle
+++ b/openbis_standard_technologies/build.gradle
@@ -20,6 +20,7 @@ configurations.create('zipping')
 configurations.create('admin_partial')
 configurations.create('admin_full')
 configurations.create('datastore_server')
+configurations.create('webStartJars')
 
 def jettyVersion = '8.1.8'
 
@@ -56,7 +57,25 @@ dependencies {
 	datastore_server project(':deep_sequencing_unit'),
 					 project(':rtd_yeastx'),
 					 project(':screening'),
-					 project(':rtd_phosphonetx')		
+					 project(':rtd_phosphonetx')
+					 
+    webStartJars 'cisd:cisd-base:+',
+                 'apache:commons-codec:+',
+                 'apache:commons-io:+',
+                 'apache:commons-httpclient:+',
+                 'apache:commons-lang:+',
+                 'apache:commons-logging:+',
+                 'imagej:ij:+',
+                 'python:jython:+',
+                 'sybit:image-viewer:+',
+                 'springframework:spring-aop:+',
+                 'springframework:spring-beans:+',
+                 'springframework:spring-context:+',
+                 'springframework:spring-core:+',
+                 'springframework:spring-web:+',
+                 'springframework:stream-supporting-httpinvoker:+',
+                 'aopalliance:aopalliance:+'
+                 
 }
 
 buildscript {
@@ -165,8 +184,43 @@ task checkFilesExist {
   }
 }
 
+signedJarsFolder = 'targets/dist/signed_jars'
+task createOpenbisJar(type: Jar) {
+    archiveName = 'openbis.jar'
+    from zipTree(project(':common').jar.archivePath).plus(
+         zipTree(project(':openbis-common').jar.archivePath).plus( 
+         zipTree(project(':screening').jar.archivePath).plus( 
+         zipTree(project(':openbis').jar.archivePath)))).matching {
+            include '**/ch/systemsx/cisd/common/spring/HttpInvokerUtils.class'
+            include '**/ch/systemsx/cisd/common/**/*.class'
+            include '**/ch/systemsx/cisd/openbis/common/**/*.class'
+            include '**/ch/systemsx/cisd/openbis/generic/client/api/**/*.class'
+            include '**/ch/systemsx/cisd/openbis/generic/client/cli/**/*.class'
+            include '**/shared/I*.class'
+            include '**/shared/basic/dto/**/*.class'
+            include '**/shared/basic/*.class'
+            include '**/*BuildAndEnvironmentInfo.class'
+        }
+    destinationDir = file(signedJarsFolder)
+}
+
+task signWebStartJars(type: Copy) {
+    from configurations.webStartJars.files
+    
+    into signedJarsFolder
+    rename '(.+)-[^-]*\\.jar', '$1.jar'
+    doLast {
+        file(signedJarsFolder).listFiles().each { file ->
+            ant.signjar(jar: file, keystore: '../screening/etc/dev.keystore',
+                        alias: 'openbis', storepass: 'openbistest')
+        }
+    }
+}
+signWebStartJars.dependsOn createOpenbisJar
+
 war.dependsOn compileGwt
 war.dependsOn checkFilesExist
+war.dependsOn signWebStartJars
 war {
     rootSpec.eachFile { file ->
         if (file.name.startsWith('cisd-cifex') || file.name.startsWith('datastore_server')) {
@@ -175,6 +229,7 @@ war {
     }
 
     from "${compileGwt.buildDir}/ch.systemsx.cisd.openbis.OpenBIS"
+    from signedJarsFolder
     webXml = file('resource/server/web.xml')
     webInf {
         from "${compileGwt.buildDir}/WEB-INF",