diff --git a/releng/org.eclipse.rap.incubator.releng/scripts/build.sh b/releng/org.eclipse.rap.incubator.releng/scripts/build.sh
index 0f738de..5de7857 100755
--- a/releng/org.eclipse.rap.incubator.releng/scripts/build.sh
+++ b/releng/org.eclipse.rap.incubator.releng/scripts/build.sh
@@ -8,16 +8,21 @@
 # initial argument checks
 if [ $# -lt 1 ]
 then
-  echo "Usage: `basename $0` COMPONENT_NAME [M|S]"
+  echo "Usage: `basename $0` COMPONENT_NAME [N|S]"
   exit 1
 fi
-BUILD_TYPE=${2:-"M"}
+BUILD_TYPE=${2:-"N"}
 
 ######################################################################
 # setup and initialization
-
 SCRIPTS_DIR=$(dirname $(readlink -nm $0))
-test -f ${SCRIPTS_DIR}/init-functions.sh && . ${SCRIPTS_DIR}/init-functions.sh
+if [ -e "${SCRIPTS_DIR}/init-environment.sh" ]
+then
+  . ${SCRIPTS_DIR}/init-environment.sh
+else
+  echo "init-environment.sh script not found at ${SCRIPTS_DIR}"
+  exit 1
+fi
 
 COMPONENT_NAME=${1}
 REPOSITORY_NAME="org.eclipse.rap.incubator.${COMPONENT_NAME}"
@@ -31,8 +36,9 @@
 fi
 
 ######################################################################
-# arbitrary checks and clean-ups
-test -d ${WORKSPACE} || exit 1
+# arbitrary checks
+# TODO mknauer - check if variable is set
+test -d "${WORKSPACE}" || exit 1
 
 ######################################################################
 # configuration check and debug
@@ -66,7 +72,7 @@
 BUILD_DIRECTORY=${WORKSPACE}/${REPOSITORY_NAME}/${BUILD_PROJECT_PATH}
 echo "Starting build in ${BUILD_DIRECTORY}"
 cd ${BUILD_DIRECTORY}
-${MVN} -e clean package -Dsign=$sign
+${MVN} -e clean package -Dsign=${sign} -Dmaven.repo.local=${MAVEN_LOCAL_REPO_PATH}
 EXITCODE=$?
 if [ "$EXITCODE" != "0" ]; then
   echo "Maven exited with error code " + ${EXITCODE}
@@ -101,11 +107,15 @@
 # clean-up target location
 echo "Removing old repositories from ${COMPONENT_DIRECTORY}, keeping the ${NUM_TO_KEEP} most recent"
 cd ${COMPONENT_DIRECTORY}
-while [ $(find . -maxdepth 1 -type d | grep '.*[0-9]$' | wc -l) -gt ${NUM_TO_KEEP} ]
-do
-  TO_DELETE=`ls -ldtr --time-style=long-iso *[0-9] | grep '^d' | head -1 | awk '{print $8}'`
-  echo "Deleting ${COMPONENT_DIRECTORY}/${TO_DELETE}"
-  rm -rf ${TO_DELETE}
+II=0
+for DIR in `ls -r ${COMPONENT_DIRECTORY} | grep '.*[0-9]$'`; do
+  if [ -d ${COMPONENT_DIRECTORY}/${DIR} ]; then
+    if [ $II -ge $NUM_TO_KEEP ]; then
+      echo "Removing outdated repository ${DIR}"
+      rm -r ${COMPONENT_DIRECTORY}/${DIR} || exit 1
+    fi
+    let II=II+1;
+  fi
 done
 
 ######################################################################
diff --git a/releng/org.eclipse.rap.incubator.releng/scripts/init-environment.sh b/releng/org.eclipse.rap.incubator.releng/scripts/init-environment.sh
index 9e7f7f7..d7a3b7e 100755
--- a/releng/org.eclipse.rap.incubator.releng/scripts/init-environment.sh
+++ b/releng/org.eclipse.rap.incubator.releng/scripts/init-environment.sh
@@ -1,11 +1,12 @@
-# This script sets up common environment variables for the RAP builds
+# This script sets up common environment variables and defines functions 
+# for the RAP builds.
 
 echo "***********************************************************************"
 
 export WORKSPACE=${WORKSPACE:-$PWD}
 echo "Workspace location: ${WORKSPACE}"
 
-export MVN=${MVN:-"/opt/public/common/apache-maven-3.0.3/bin/mvn"}
+export MVN=${MVN:-"/opt/public/common/apache-maven-3.0.4/bin/mvn"}
 echo "Maven path: ${MVN}"
 
 export ECLIPSE_HOME=${ECLIPSE_HOME:-"/shared/rt/rap/build-runtimes/eclipse"}
@@ -29,3 +30,33 @@
 export NUM_TO_KEEP=${NUM_TO_KEEP:-"5"}
 echo "Number of p2 repositories to keep: ${NUM_TO_KEEP}"
 
+export MAVEN_LOCAL_REPO_PATH=${MAVEN_LOCAL_REPO_PATH:-"/shared/rt/rap/m2/repository"}
+echo "Local Maven repository location: ${MAVEN_LOCAL_REPO_PATH}"
+
+
+######################################################################
+# functions used in the build
+
+p2AddContent() {
+  if [ $# -lt 3 ]
+  then
+    echo "Usage: `p2AddContent` SOURCE_REPO TARGET_REPO REPO_NAME"
+    exit 1
+  fi
+
+  SOURCE=file://${1}
+  DESTINATION=file://${2}
+  DESTINATION_NAME="${3}"
+
+  ${ECLIPSE_HOME}/eclipse -nosplash -verbose \
+    -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication \
+    -source ${SOURCE} \
+    -destination ${DESTINATION} \
+    -destinationName ${DESTINATION_NAME}
+  ${ECLIPSE_HOME}/eclipse -nosplash -verbose \
+    -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication \
+    -source ${SOURCE} \
+    -destination ${DESTINATION} \
+    -destinationName ${DESTINATION_NAME}
+}
+
diff --git a/releng/org.eclipse.rap.incubator.releng/scripts/init-functions.sh b/releng/org.eclipse.rap.incubator.releng/scripts/init-functions.sh
deleted file mode 100755
index 4994e25..0000000
--- a/releng/org.eclipse.rap.incubator.releng/scripts/init-functions.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-# Functions used in the RAP build
-
-test -f ${SCRIPTS_DIR}/init-environment.sh && . ${SCRIPTS_DIR}/init-environment.sh
-
-echo "***********************************************************************"
-
-p2AddContent() {
-  if [ $# -lt 2 ]
-  then
-    echo "Usage: `p2AddContent` SOURCE_REPO TARGET_REPO [NAME]"
-    exit 1
-  fi
-
-  SOURCE=file://${1}
-  DESTINATION=file://${2}
-  DESTINATION_NAME=${3:-"A RAP p2 Repository"}
-
-  ${ECLIPSE_HOME}/eclipse -nosplash -verbose \
-    -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication \
-    -source ${SOURCE} \
-    -destination ${DESTINATION} \
-    -destinationName ${DESTINATION_NAME}
-  ${ECLIPSE_HOME}/eclipse -nosplash -verbose \
-    -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication \
-    -source ${SOURCE} \
-    -destination ${DESTINATION} \
-    -destinationName ${DESTINATION_NAME}
-}
-
