diff --git a/package-lock.json b/package-lock.json
index a60d9e98dd80876ccaaca0ab01e3c07fd6105f0d..dc52fe906437e3e2768d41073c40bf111ff6f996 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -250,8 +250,8 @@
 			"integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
 		},
 		"b-language-server": {
-			"version": "https://github.com/SeeBasTStick/b-language-server/archive/v2.0.2.tar.gz",
-			"integrity": "sha512-ZgexzCtfT3Vfr4isZU3ypSszriNaCW4HsKdH+cXBuqfAN+pXE3wqH/uKz2Rw+TzNBy3m6FockjHqDDZXrU1x/A=="
+			"version": "https://github.com/SeeBasTStick/b-language-server/archive/v2.0.5.tar.gz",
+			"integrity": "sha512-TIDJVHo8A6T4/gIjrJnzxvMIxISAWLRsgKWTkYrFxWWcJkE4fZMzEiT5I+j8HY3y/5aiLZ6pHUynuTJmqaV+2g=="
 		},
 		"balanced-match": {
 			"version": "1.0.0",
@@ -264,6 +264,11 @@
 			"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
 			"dev": true
 		},
+		"bluebird": {
+			"version": "2.11.0",
+			"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
+			"integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE="
+		},
 		"brace-expansion": {
 			"version": "1.1.11",
 			"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -451,6 +456,11 @@
 			"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
 			"dev": true
 		},
+		"commander": {
+			"version": "2.20.3",
+			"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+			"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+		},
 		"concat-map": {
 			"version": "0.0.1",
 			"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -1496,6 +1506,31 @@
 			"integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
 			"dev": true
 		},
+		"portastic": {
+			"version": "1.0.1",
+			"resolved": "https://registry.npmjs.org/portastic/-/portastic-1.0.1.tgz",
+			"integrity": "sha1-HJgF1D+uj2pAzw28d5QJGi6dDSo=",
+			"requires": {
+				"bluebird": "^2.9.34",
+				"commander": "^2.8.1",
+				"debug": "^2.2.0"
+			},
+			"dependencies": {
+				"debug": {
+					"version": "2.6.9",
+					"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+					"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+					"requires": {
+						"ms": "2.0.0"
+					}
+				},
+				"ms": {
+					"version": "2.0.0",
+					"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+					"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+				}
+			}
+		},
 		"prelude-ls": {
 			"version": "1.2.1",
 			"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
diff --git a/package.json b/package.json
index 35cb754c794c604e6d9869b86922db20f4043a8e..07396ca6f27a1d5c05b7bd650da4472f2d2e6e67 100644
--- a/package.json
+++ b/package.json
@@ -156,7 +156,7 @@
 		"@types/ndjson": "^1.5.0",
 		"@types/stream-to-array": "^2.3.0",
 		"@types/vscode": "^1.49.0",
-		"b-language-server": "https://github.com/SeeBasTStick/b-language-server/archive/v2.0.2.tar.gz",
+		"b-language-server": "https://github.com/SeeBasTStick/b-language-server/archive/v2.0.5.tar.gz",
 		"clean": "^4.0.2",
 		"error": "^10.4.0",
 		"fs": "0.0.1-security",
@@ -164,6 +164,7 @@
 		"ndjson": "^1.5.0",
 		"net": "^1.0.2",
 		"path": "^0.12.7",
+		"portastic": "^1.0.1",
 		"run-script-os": "^1.1.1",
 		"stream-to-array": "^2.3.0",
 		"tcp-port-used": "^1.0.1",
diff --git a/src/extension.ts b/src/extension.ts
index a8f4f4bf26be9a344ba26a37bd6edd0cb97615d7..0f9672977b96d8e418e164a271481d9f2403b543 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -4,7 +4,7 @@ import {
 	window,
 	TextEditor,
 	StatusBarAlignment,
-	OutputChannel
+	OutputChannel,
 } from 'vscode';
 
 
@@ -18,7 +18,7 @@ import {
 import * as net from 'net';
 
 import * as path from 'path'
-import { spawn, spawnSync } from 'child_process';
+import {  spawn } from 'child_process';
 
 
 let client: LanguageClient;
@@ -30,17 +30,18 @@ export function activate(context: ExtensionContext) {
 	const javaHome: string = workspace.getConfiguration("common").get("javaHome")
 
 
-	//Start the server
-	// comment the two lines (and the closing brackets) if you want to run a server by hand -> for developing
-	let prc = spawn(javaHome, ['-jar', serverHome])
+	let prc  = spawn(javaHome, ['-jar', serverHome])
 
-	prc.stdout.on('data', function (data) {
+	prc.stdout.on('data', function (data : Buffer) {
+
+		let portAsStringWithBrackets : String = data.toString()
+		let closingBracketPos : number = portAsStringWithBrackets.indexOf(">")
+		let portNumber : number = parseInt(portAsStringWithBrackets.substring(1, closingBracketPos))
 
 		let connectionInfo = {
-			port: 55556,
+			port: portNumber,
 		}
-
-
+	
 
 		let serverOptions: ServerOptions = () => {
 			let socket = net.connect(connectionInfo);
@@ -52,13 +53,11 @@ export function activate(context: ExtensionContext) {
 		}
 
 
-
 		if (debugChannle == null) {
 			debugChannle = window.createOutputChannel("ProB language server")
 		}
 
 
-		//debugChannle.appendLine("fs exits " + fs.existsSync(serverHome))
 		// Options to control the language client
 		let clientOptions: LanguageClientOptions = {
 			// Register the server for B files
@@ -76,21 +75,12 @@ export function activate(context: ExtensionContext) {
 
 		let item = window.createStatusBarItem(StatusBarAlignment.Right, Number.MIN_VALUE);
 
-		debugChannle.appendLine("starting server: " + javaHome + " -jar " + serverHome)
-
-
-
 		item.text = 'Starting ProB LSP...';
 		toggleItem(window.activeTextEditor, item);
-
-		// Start the clienServert. This will also launch the server
+	
 		let disposable = client.start();
 		context.subscriptions.push(disposable);
 
-		console.log( workspace.getConfiguration())
-		console.log( workspace.getConfiguration("languageServer"))
-		
-
 		const debugMode: Boolean = workspace.getConfiguration("languageServer").get("debugMode")
 		if (!debugMode) {
 			debugChannle.hide()
@@ -105,7 +95,6 @@ export function activate(context: ExtensionContext) {
 		})
 
 	})
-
 }
 
 function showDebugMessages(debugChannle: OutputChannel) {