diff -ruN /opt/SUNWut.orig/bin/utset /opt/SUNWut/bin/utset
--- /opt/SUNWut.orig/bin/utset	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/bin/utset	2008-10-30 10:22:52.000000000 +0100
@@ -870,7 +870,7 @@
       print "$R $S"
     done
   ) |
-  (export LC_ALL=C; sort -t 'x' +0 -1n +1 -2n +2 -3n)
+  (export LC_ALL=C; sort -t 'x' -k 1,1n -k 2,2n -k 3,3n )
 
   exit 0
 fi
diff -ruN /opt/SUNWut.orig/lib/dhcp/isc/dhcp_config_linux /opt/SUNWut/lib/dhcp/isc/dhcp_config_linux
--- /opt/SUNWut.orig/lib/dhcp/isc/dhcp_config_linux	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/dhcp/isc/dhcp_config_linux	2008-10-30 10:22:52.000000000 +0100
@@ -7,7 +7,11 @@
 #
 
 UTDHCPDIR="$ETCDIR"/net/dhcp
-DHCPDCONF=/etc/dhcpd.conf
+if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then
+	DHCPDCONF=/etc/dhcp3/dhcpd.conf
+else
+	DHCPDCONF=/etc/dhcpd.conf
+fi
 UTDHCPFILE="$UTDHCPDIR"/utdhcp
 OPTIONSFILENAME="SunRay-options"
 OPTIONSFILE="$UTDHCPDIR"/"$OPTIONSFILENAME"
@@ -30,12 +34,16 @@
 DUMMY_SUBNET_COMMENT="# Sun Ray: dummy subnet to support DHCP clients on remote subnets"
 
 CheckChrooted() {
-	grep $CHROOTKEY $SYSDHCPD | grep -i yes 2>/dev/null 1>&2
-	if [[ $? -eq 0 ]]; then
-		CHROOTED=true
+	if [[ -f $SYSDHCPD ]]; then
+		grep $CHROOTKEY $SYSDHCPD | grep -i yes 2>/dev/null 1>&2
+		if [[ $? -eq 0 ]]; then
+			CHROOTED=true
+		else
+			CHROOTED=false
+		fi
 	else
 		CHROOTED=false
-	fi	
+	fi
 }
 
 GenerateOptionsDHCPDBlock() {
diff -ruN /opt/SUNWut.orig/lib/dhcp/isc/utdhcpservice /opt/SUNWut/lib/dhcp/isc/utdhcpservice
--- /opt/SUNWut.orig/lib/dhcp/isc/utdhcpservice	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/dhcp/isc/utdhcpservice	2008-10-30 10:22:52.000000000 +0100
@@ -49,9 +49,14 @@
 
 # names of files and directories that will be touched by this script
 #
-DHCP_CONFIG="/etc/dhcpd.conf";
+if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then
+	DHCP_CONFIG="/etc/dhcp3/dhcpd.conf"
+else
+	DHCP_CONFIG="/etc/dhcpd.conf"
+fi
 DHCP_CONFIG_SAMPLE_RHAS="/usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample";
 DHCP_CONFIG_SAMPLE_SLES="/usr/share/doc/packages/dhcp-server/dhcpd.conf";
+DHCP_CONFIG_SAMPLE_DEB="/usr/share/doc/dhcp3-server/examples/dhcpd.conf";
 TMPDIR="/var/opt/SUNWut/tmp"
 CORONA_NAME="SunRay";
 CORONA_TITLE="Sun Ray";
@@ -59,6 +64,8 @@
 	DHCP_DIR="/var/lib/dhcp";
 elif [ -d /var/lib/dhcpd ]; then
 	 DHCP_DIR="/var/lib/dhcpd";
+elif [ -d /var/lib/dhcp3 ]; then
+	DHCP_DIR="/var/lib/dhcp3";
 fi
 
 SUNRAY_FILE_MARK="${CORONA_TITLE} default DHCP config file"
@@ -76,6 +83,7 @@
 typeset DHCP_RUNNING=true
 typeset DHCP_PACKAGE_RH="dhcp"
 typeset DHCP_PACKAGE_SU="dhcp-server"
+typeset DHCP_PACKAGE_DEB="dhcp3-server"
 typeset DHCP_PACKAGE="DHCP"
 typeset DHCP_STATE="online"
 
@@ -97,7 +105,12 @@
     typeset PACKAGE="${DHCP_PACKAGE}"
     if $DHCP_INSTALLED ; then
       # get the actual package name including version and release
-      PACKAGE="$(rpm -q ${DHCP_PACKAGE} 2> /dev/null)"
+	DPKG=$(which dpkg1)
+	if [[ -f "$DPKG" ]]; then
+	  PACKAGE="$(dpkg -l | grep dhcp3-server | awk '{print $2$3}' 2> /dev/null)"
+	else
+ 	  PACKAGE="$(rpm -q ${DHCP_PACKAGE} 2> /dev/null)"
+	fi
     fi
     if ! $DHCP_RUNNING && [ $DHCP_STATE != "unconfigured" ] ; then
       DHCP_STATE="disabled"
@@ -122,12 +135,18 @@
           DHCP_CONFIG_SAMPLE=${DHCP_CONFIG_SAMPLE_RHAS}
        elif [ -f ${DHCP_CONFIG_SAMPLE_SLES} ]; then
            DHCP_CONFIG_SAMPLE=${DHCP_CONFIG_SAMPLE_SLES}
+       elif [ -f ${DHCP_CONFIG_SAMPLE_DEB} ]; then
+           DHCP_CONFIG_SAMPLE=${DHCP_CONFIG_SAMPLE_DEB}
        fi
        diff ${DHCP_CONFIG} ${DHCP_CONFIG_SAMPLE} > /dev/null 2>&1
        if [[ $? == 0 ]]; then
             mv ${DHCP_CONFIG} ${DHCP_CONFIG}.sunray
        else
-	   dhcpd -t > /dev/null 2>&1
+           if [[ -f "/usr/sbin/dhcpd3" ]]; then
+       		dhcpd3 -t > /dev/null 2>&1
+	   else
+		   dhcpd -t > /dev/null 2>&1
+	   fi
 	   if [[ $? == 0 ]]; then
 		cat > ${DHCP_CONFIG}.$$ <<-!
 # ${SUNRAY_FILE_MARK} /etc/dhcpd.conf
@@ -208,7 +227,11 @@
       return 3
     fi
 
-    /etc/init.d/dhcpd start > /dev/null 2>&1
+    if [[ -f /etc/init.d/dhcp3-server ]]; then
+        /etc/init.d/dhcp3-server start > /dev/null 2>&1
+    else
+        /etc/init.d/dhcpd start > /dev/null 2>&1
+    fi 
     return $?
 }
 
@@ -216,8 +239,11 @@
     if ! $DHCP_ENABLED ; then
       return 3
     fi
-
-    /etc/init.d/dhcpd stop > /dev/null 2>&1
+    if [[ -f /etc/init.d/dhcp3-server ]]; then
+        /etc/init.d/dhcp3-server  stop > /dev/null 2>&1
+    else
+        /etc/init.d/dhcpd stop > /dev/null 2>&1
+    fi
     return $?
 }
 
@@ -225,8 +251,11 @@
     if ! $DHCP_ENABLED ; then
       return 3
     fi
-
-    /etc/init.d/dhcpd restart > /dev/null 2>&1
+    if [[ -f /etc/init.d/dhcp3-server ]]; then
+        /etc/init.d/dhcp3-server  restart > /dev/null 2>&1
+    else
+        /etc/init.d/dhcpd restart > /dev/null 2>&1
+    fi
     return $?
 }
 
@@ -237,11 +266,16 @@
 if [[ $? -ne 0 ]] ; then
   ${UT_BASEDIR}/lib/utprodinfo -t installed ${DHCP_PACKAGE_SU} 2>/dev/null 1>&2
   if [[ $? -ne 0 ]]; then
-    DHCP_INSTALLED=false
-    DHCP_ENABLED=false
-    DHCP_CONFIGURED=false
-    DHCP_RUNNING=false
-    DHCP_STATE="uninstalled"
+    ${UT_BASEDIR}/lib/utprodinfo -t installed ${DHCP_PACKAGE_DEB} 2>/dev/null 1>&2
+    if [[ $? -ne 0 ]]; then
+      DHCP_INSTALLED=false
+      DHCP_ENABLED=false
+      DHCP_CONFIGURED=false
+      DHCP_RUNNING=false
+      DHCP_STATE="uninstalled"
+    else
+      DHCP_PACKAGE=${DHCP_PACKAGE_DEB}
+    fi
   else
     DHCP_PACKAGE=${DHCP_PACKAGE_SU}
   fi
@@ -266,8 +300,11 @@
     	if [[ $? != 0 ]] ; then
       	    DHCP_CONFIGURED=false	# Interface / subnet not defined
     	fi
-
-    	/etc/init.d/dhcpd status 2> /dev/null | grep "running" >/dev/null 2>&1
+        if [[ -f "/etc/init.d/dhcp3-server" ]]; then
+            /etc/init.d/dhcp3-server status 2> /dev/null | grep "running" >/dev/null 2>&1
+        else
+	    /etc/init.d/dhcpd status 2> /dev/null | grep "running" >/dev/null 2>&1
+	fi
     	if [[ $? -ne 0 ]]; then
       	    DHCP_RUNNING=false
     	fi
diff -ruN /opt/SUNWut.orig/lib/iu_modules/M08GDM /opt/SUNWut/lib/iu_modules/M08GDM
--- /opt/SUNWut.orig/lib/iu_modules/M08GDM	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/iu_modules/M08GDM	2008-10-30 10:22:52.000000000 +0100
@@ -312,7 +312,7 @@
 #
 if IsInstallRequired; then
 	# when installing, pick up the build number from the rpm in the CD image
-	typeset TMP_NAME=`ls -1tr ${GDM_DIR}/${GDM_NAME}-${GDM_OUR_VERSION}-?*.i386.rpm | tail -1`
+	typeset TMP_NAME=`ls -1tr ${GDM_DIR}/${GDM_NAME}-${GDM_OUR_VERSION}-?*.i386.rpm | tail -n 1`
 	TMP_NAME=${TMP_NAME##*-}
 	export GDM_RELEASE=${TMP_NAME%%\.i386*}
 else
diff -ruN /opt/SUNWut.orig/lib/iu_modules/M10SunDS /opt/SUNWut/lib/iu_modules/M10SunDS
--- /opt/SUNWut.orig/lib/iu_modules/M10SunDS	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/iu_modules/M10SunDS	2008-10-30 10:22:52.000000000 +0100
@@ -98,7 +98,7 @@
           # NOTE: head -2 to deal with the case the first line is blank.
           # we need only to know if there is anything under the subtree.
           #
-          ANY=$(ldapsearch -b "$BASE" -s one "objectclass=*" dn 2>&- | head -2)
+          ANY=$(ldapsearch -b "$BASE" -s one "objectclass=*" dn 2>&- | head -n 2)
           search_st=$?
           if [[ $search_st -eq 0 ]]; then
             # subtree exists, check if empty
diff -ruN /opt/SUNWut.orig/lib/iu_modules/M40AuthMgr /opt/SUNWut/lib/iu_modules/M40AuthMgr
--- /opt/SUNWut.orig/lib/iu_modules/M40AuthMgr	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/iu_modules/M40AuthMgr	2008-10-30 10:22:52.000000000 +0100
@@ -261,19 +261,19 @@
 
     # try to set keyval to uncommented pair first
     old_keyval=$(grep "=" $oldfile 2>&- |
-        grep "^[ 	]*${key}[= 	]" | tail -1)
+        grep "^[ 	]*${key}[= 	]" | tail -n 1)
     # if no uncommented pair, take the last commented pair
     [[ -z "$old_keyval" ]] && \
       old_keyval=$(grep "=" $oldfile 2>&- |
-      grep "^[# 	]*${key}[= 	]" | tail -1)
+      grep "^[# 	]*${key}[= 	]" | tail -n 1)
 
     # try to set keyval to uncommented pair first
     new_keyval=$(grep "=" $newfile 2>&- |
-        grep "^[ 	]*${key}[= 	]" | tail -1)
+        grep "^[ 	]*${key}[= 	]" | tail -n 1)
     # if no uncommented pair, take the last commented pair
     [[ -z "$new_keyval" ]] && \
       new_keyval=$(grep "=" $newfile 2>&- |
-      grep "^[# 	]*${key}[= 	]" | tail -1)
+      grep "^[# 	]*${key}[= 	]" | tail -n 1)
 
 #
 # Check if this parameter does not have to be modified
diff -ruN /opt/SUNWut.orig/lib/support_lib/iu_lib /opt/SUNWut/lib/support_lib/iu_lib
--- /opt/SUNWut.orig/lib/support_lib/iu_lib	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/support_lib/iu_lib	2008-10-30 10:22:52.000000000 +0100
@@ -200,8 +200,8 @@
 
     for patchid in $all_patches; do
       print -n "... checking patch ${patchid} ... "
-      exist=$(grep "${patchid}-[0-9][0-9]" ${showrev_p} | head -1)
-      patch=$(\ls -1 "$dir" 2>&- | grep "^${patchid}" | tail -1)
+      exist=$(grep "${patchid}-[0-9][0-9]" ${showrev_p} | head -n -1)
+      patch=$(\ls -1 "$dir" 2>&- | grep "^${patchid}" | tail -n -1)
       pkgs=$(cd "${dir}/${patch}" 2>&-; \ls -1 */pkginfo 2>&- | 
         sed -e 's:/pkginfo::g')
 
diff -ruN /opt/SUNWut.orig/lib/support_lib/sras_config /opt/SUNWut/lib/support_lib/sras_config
--- /opt/SUNWut.orig/lib/support_lib/sras_config	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/support_lib/sras_config	2008-10-30 10:22:52.000000000 +0100
@@ -392,13 +392,13 @@
 		else
 			if [[ $APACHE_INSTALLED == "both" ]]; then
 				if [[ $OS == "Linux" ]]; then
-					if ! ReplyIsYes "\nThere is an instance of Apache detected in both" \
+					if ! ReplyIsYes "\nThere is an istance of Apache detected in both" \
 				      	      "\n/etc/httpd and /usr/apache.  The default is /etc/httpd." \
 				      	      "\nWould you like to use this instance?  Answering \"no\"" \
 				      	      "\nwill configure the /usr/apache instance." ; then
 						APACHETMP="$ETC_OPT_UT"/http/templates/apache.tpl
-  						APACHECTL="/usr/apache/bin/apachectl"	
-						APACHEDIR="/usr/apache/conf"
+  						APACHECTL="/usr/bin/apache2ctl"	
+						APACHEDIR="/etc/apache2"
 						APACHECFG="$APACHEDIR"/httpd.conf
 					fi
 					UT_LOCATION=$APACHEDIR
@@ -580,6 +580,13 @@
 		rm -f /etc/opt/SUNWut/http/auto.start
 	fi
 	print ${APACHECTL} > /etc/opt/SUNWut/http/auto.start
+       if [[ -f /etc/default/apache2 ]]; then
+               . /etc/default/apache2
+               if [[ "$NO_START" = "1" ]]; then
+                       echo "# 0 = start on boot; 1 = don't start on boot" > /etc/default/apache2
+                       echo "NO_START=0" >> /etc/default/apache2
+               fi
+       fi
 }
 
 function RemoveAutoStart {
@@ -898,6 +905,8 @@
 	if [[ $OS == "Linux" ]]; then
 		if [[ -f /etc/httpd/conf/magic || -f /etc/httpd/magic ]]; then
 			HTTPD_SCRIPT=/usr/sbin/httpd
+                elif [[ -f /etc/apache2/magic ]]; then
+                        HTTPD_SCRIPT=/usr/sbin/apache2
 		fi
 	fi
 
@@ -938,6 +947,8 @@
 			BUNDLED_MAGIC=/etc/httpd/conf/magic
 		elif [[ -f /etc/httpd/magic ]]; then
 			BUNDLED_MAGIC=/etc/httpd/magic
+                elif [[ -f /etc/apache2/magic ]]; then
+                        BUNDLED_MAGIC=/etc/apache2/magic
 		fi
 		;;
 	esac
@@ -1066,11 +1077,26 @@
 			fi
                 	STATUS=1
         	fi
+
+	# Check for apache in Debian/Ubuntu location
+	elif [[ -f /etc/apache2/magic ]]; then
+		APACHEDIR="/etc/apache2"
+		APACHETMP="$ETC_OPT_UT"/http/templates/apache.tpl.debian
+		APACHECTL="/etc/init.d/apache2"
 	fi
         ;;
   esac
   if [[ -n $APACHEDIR ]]; then
-  	APACHECFG="$APACHEDIR"/httpd.conf
+       if [[ "$OS" = "Linux" ]]; then
+               . /etc/lsb-release
+               if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then
+                       APACHECFG="$APACHEDIR"/apache2.conf
+               else
+                       APACHECFG="$APACHEDIR"/httpd.conf
+               fi
+       else
+               APACHECFG="$APACHEDIR"/httpd.conf
+       fi
   fi
   ApacheInstalled
 
diff -ruN /opt/SUNWut.orig/lib/support_lib/upgrade_lib /opt/SUNWut/lib/support_lib/upgrade_lib
--- /opt/SUNWut.orig/lib/support_lib/upgrade_lib	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/support_lib/upgrade_lib	2008-10-30 10:22:52.000000000 +0100
@@ -56,9 +56,9 @@
   for key in $(awk -F= '{ print $1 }' $oldfile 2>&- | grep -v "^#" |
       sort -u); do
     old_keyval=$(grep "^[ 	]*$key[= 	]" $oldfile 2>&- |
-        tail -1)
+        tail -n 1)
     new_keyval=$(grep "^[ 	]*$key[= 	]" $newfile 2>&- |
-        tail -1)
+        tail -n 1)
     if [[ -n "$old_keyval" && -n "$new_keyval" ]]; then
       if [[ "$old_keyval" != "$new_keyval" ]]; then
         DoUpgrade "$key" "$old_keyval" "$new_keyval" "$newfile"
@@ -116,7 +116,7 @@
   fi
   for key in $(grep -v "^#" "$oldfile" 2>&- | awk -F= '{ print $1 }' |
       sort -u); do
-    line=$(grep "^${key}[ 	=]" "$oldfile" 2>&- | tail -1)
+    line=$(grep "^${key}[ 	=]" "$oldfile" 2>&- | tail -n 1)
     grep "$line" "$newfile" 2>&1 >/dev/null || \
       DoAppend "$line" "$newfile"
   done
@@ -564,7 +564,7 @@
     return 1
   fi
 
-  _RETURN_VAL=$(ls -1 ${TARFILE}* | tail -1)
+  _RETURN_VAL=$(ls -1 ${TARFILE}* | tail -n 1)
 
   return 0
 
diff -ruN /opt/SUNWut.orig/lib/utadmingid /opt/SUNWut/lib/utadmingid
--- /opt/SUNWut.orig/lib/utadmingid	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utadmingid	2008-10-30 10:22:52.000000000 +0100
@@ -15,7 +15,7 @@
 ETCDIR="/etc/opt/SUNWut"
 UTADMINPW=${ETCDIR}/utadmin.pw
 if [ -f $UTADMINPW ] ; then
-	WEBGUI_GROUP=`/bin/ls -gn $UTADMINPW | /bin/awk '{print $3}' `
+	WEBGUI_GROUP=`/bin/ls -gn $UTADMINPW | awk '{print $3}' `
 fi
 WEBGUI_GROUP=${WEBGUI_GROUP:-root}
 print $WEBGUI_GROUP
diff -ruN /opt/SUNWut.orig/lib/utctl.d/features/utcronctl /opt/SUNWut/lib/utctl.d/features/utcronctl
--- /opt/SUNWut.orig/lib/utctl.d/features/utcronctl	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utctl.d/features/utcronctl	2008-10-30 10:22:52.000000000 +0100
@@ -37,13 +37,13 @@
 		return
 	fi
 
-	(set +e; head -1 $CRONFILE | \
+	(set +e; head -n 1 $CRONFILE | \
 	    grep "^# DO NOT EDIT THIS FILE - edit the master and reinstall" \
 	    > /dev/null 2>&1)
 	if [ $? -eq 0 ]; then
 		# comment exists, remove them
 		cat /dev/null >$TMPFILE_COMM
-		head -3 $CRONFILE | sed \
+		head -n 3 $CRONFILE | sed \
 		-e "/^# DO NOT EDIT THIS FILE - edit the master and reinstall/d" \
 		-e "/^# (\/[^ ]* installed/d" \
 		-e "/^# (Cron version/d" >> $TMPFILE_COMM
diff -ruN /opt/SUNWut.orig/lib/utdmsession /opt/SUNWut/lib/utdmsession
--- /opt/SUNWut.orig/lib/utdmsession	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utdmsession	2008-10-30 10:22:52.000000000 +0100
@@ -26,7 +26,7 @@
 #exec >/var/tmp/utdmsession.$$ 2>&1       # Debug
 #set -x
 
-MOD="`/bin/basename $0`"
+MOD="`basename $0`"
 USAGE="usage: $MOD [-c|-d] Xdisplay [-z tag]"
 UTMNT_DIRLOCK=".session"
 
diff -ruN /opt/SUNWut.orig/lib/utdtsession /opt/SUNWut/lib/utdtsession
--- /opt/SUNWut.orig/lib/utdtsession	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utdtsession	2008-10-30 10:22:52.000000000 +0100
@@ -554,7 +554,7 @@
 	# so that a new session can be created.
 
 	# get the existing session ID
-	oldsid=$(head -1 $tif)
+	oldsid=$(head -n 1 $tif)
 
 	# get the existing session type
 	OLD_SESSION_TYPE=""
diff -ruN /opt/SUNWut.orig/lib/utgdmconfigpath /opt/SUNWut/lib/utgdmconfigpath
--- /opt/SUNWut.orig/lib/utgdmconfigpath	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utgdmconfigpath	2008-10-30 10:24:45.000000000 +0100
@@ -10,12 +10,12 @@
 if [ "`uname -s`" = "SunOS" ]; then
     GDM_DIR=/etc/X11/gdm/
 else
-    GDM_PATH=`rpm -ql "gdm" | grep "custom.conf"`
+    GDM_PATH=`dpkg -L "gdm" | grep "gdm.conf"`
     if [ $? != 0 ]; then
 	print -u2 "Cannot determine GDM install directory"
 	exit 1;
     fi
-    GDM_DIR=${GDM_PATH%%custom\.conf*}
+    GDM_DIR=${GDM_PATH%%gdm\.conf*}
 fi
 print $GDM_DIR
 exit 0
diff -ruN /opt/SUNWut.orig/lib/utprodinfo /opt/SUNWut/lib/utprodinfo
--- /opt/SUNWut.orig/lib/utprodinfo	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utprodinfo	2008-10-30 10:22:52.000000000 +0100
@@ -75,6 +75,8 @@
 set -A SunOS_Mapped_Sed
 # Mapped parameter query format for the Linux packaging utility
 set -A Linux_Mapped_Param
+# Mapped parameter query format for the dpkg packaging utility
+set -A Debian_Mapped_Param
 # Maximum number of parameters allowed
 typeset -i MAXParam=1
 
@@ -82,42 +84,51 @@
 Param[${MAXParam}]="BASEDIR"
 SunOS_Mapped_Param[${MAXParam}]="BASEDIR"
 Linux_Mapped_Param[${MAXParam}]="%{INSTALLPREFIX}"
+Debian_Mapped_Param[${MAXParam}]="INSTALLPREFIX"
 let MAXParam+=1
 # --- VERSION - version number with the build info.  Ex: 2.0_37.b
 Param[${MAXParam}]="VERSION"
 SunOS_Mapped_Param[${MAXParam}]="VERSION"
 SunOS_Mapped_Sed[${MAXParam}]="s/\([0-9]\{1,\}\.[0-9]\{1,\}_[0-9]\{1,2\}\.\{0,1\}[a-z]\{0,1\}\),.*/\1/"
 Linux_Mapped_Param[${MAXParam}]="%{VERSION}_%{RELEASE}"
+Debian_Mapped_Param[${MAXParam}]="DEBVERSION"
 let MAXParam+=1
 # --- PSTAMP - product timestamp
 Param[${MAXParam}]="PSTAMP"
 SunOS_Mapped_Param[${MAXParam}]="PSTAMP"
 Linux_Mapped_Param[${MAXParam}]="%{BUILDTIME:date}"
+Debian_Mapped_Param[${MAXParam}]=""
 let MAXParam+=1
 # --- NAME - description of the package.
 Param[${MAXParam}]="NAME"
 SunOS_Mapped_Param[${MAXParam}]="NAME"
 Linux_Mapped_Param[${MAXParam}]="%{SUMMARY}"
+Debian_Mapped_Param[${MAXParam}]='${Description;40}'
 let MAXParam+=1
 # --- PRODVERS - product version without the build info.  Ex: 2.0
 Param[${MAXParam}]="PRODVERS"
 SunOS_Mapped_Param[${MAXParam}]="SUNW_PRODVERS"
 Linux_Mapped_Param[${MAXParam}]="%{VERSION}"
+Debian_Mapped_Param[${MAXParam}]="DEBPRODVERS"
 let MAXParam+=1
 # --- PKGNAME - package name. Ex: SUNWuto
 Param[${MAXParam}]="PKGNAME"
 SunOS_Mapped_Param[${MAXParam}]="PKGINST"
 Linux_Mapped_Param[${MAXParam}]="%{NAME}"
+Debian_Mapped_Param[${MAXParam}]='${Package}\\n'
 let MAXParam+=1
 # --- INSTDATE - date the package is installed on the system.
 Param[${MAXParam}]="INSTDATE"
 SunOS_Mapped_Param[${MAXParam}]="INSTDATE"
 Linux_Mapped_Param[${MAXParam}]="%{INSTALLTIME:date}"
+Debian_Mapped_Param[${MAXParam}]=""
 let MAXParam+=1
 # --- PATCHLIST - list of patches installed for this package.
 Param[${MAXParam}]="PATCHLIST"
 SunOS_Mapped_Param[${MAXParam}]="PATCHLIST"
 Linux_Mapped_Param[${MAXParam}]=""
+Debian_Mapped_Param[${MAXParam}]=""
+
 let MAXParam+=1
 
 
@@ -156,14 +167,22 @@
 			# add key name manipulation sed script
 			SEDLIST="${SEDLIST} -e s/^${SunOS_Mapped_Param[${1}]}=/${Param[${1}]}=/"
 		fi
-	else
-		if [[ -n "${Linux_Mapped_Param[${1}]}" ]]; then
+	elif [[ ${PREFIX} = "Debian" ]]; then
+		if [[ -n "${Debian_Mapped_Param[${1}]}" ]]; then
 			if ${2}; then
-				MAPPEDLIST="${MAPPEDLIST}${Param[${1}]}=${Linux_Mapped_Param[${1}]}\\n"
+				MAPPEDLIST="${MAPPEDLIST}${Param[${1}]}=${Debian_Mapped_Param[${1}]}\\n"
 			else
-				MAPPEDLIST="${Linux_Mapped_Param[${1}]}\\n"
+				MAPPEDLIST="${Debian_Mapped_Param[${1}]}\\n"
 			fi
 		fi
+	else
+                if [[ -n "${Linux_Mapped_Param[${1}]}" ]]; then
+                        if ${2}; then
+                                MAPPEDLIST="${MAPPEDLIST}${Param[${1}]}=${Linux_Mapped_Param[${1}]}\\n"
+                        else
+                                MAPPEDLIST="${Linux_Mapped_Param[${1}]}\\n"
+                        fi
+                fi
 	fi
 }
 
@@ -323,6 +342,14 @@
 	return $?
 }
 
+Debian_dispAll() {
+       $DEBUG
+        # NOTE: must sort first so that we can return the exit code from grep
+	dpkg -l | grep "Sun Ray"
+	return $?
+}
+
+
 #
 # dispParams - displays the parameter information in key-value form.
 # $1 - package name
@@ -345,6 +372,43 @@
 	return 0
 }
 
+Debian_dispParams() {
+        $DEBUG
+        if ! ${PREFIX}_testPkg installed $PKGNAME; then
+                # package not installed;
+                print -u2 "${ERROR_PREF} package $PKGNAME not installed"
+                return 1
+        fi
+
+        buildParamList "$@"
+        if [[ $? -eq 1 ]]; then
+                # found no params, just return
+                return 0
+        fi
+
+	# This is becaue the alien converted packaged are lowercase
+	DEB="`echo "${PKGNAME}" | tr '[A-Z]' '[a-z]'`"
+	VERSION=""
+	PRODVERS=""
+
+	# The below is a bit of a hack to get the correct informtin out of dpkg-query
+	# it always returns /opt as the basedir
+
+	if [ "`echo "${MAPPEDLIST}"|grep "DEBVERSION"`" ]; then
+		VERSION="`dpkg-query -f '${Version}\n' -W "${DEB}" | sed -e 's/-/_/'`"
+	fi
+	if [ "`echo "${MAPPEDLIST}"|grep "DEBPRODVERS"`" ]; then
+		PRODVERS="`dpkg-query -f '${Version}\n' -W "${DEB}" | sed -e 's/-.*$//'`"
+	fi
+
+	QL="`echo "${MAPPEDLIST}"|sed -e 's/INSTALLPREFIX/\/opt/g' -e "s/DEBVERSION/${VERSION}/g" -e "s/DEBPRODVERS/${PRODVERS}/g"`"
+	if [ "`echo "${QL}"|grep '\\$'`" ]; then
+		dpkg-query -f "${QL}" -W "${DEB}"
+	else
+		echo "${QL}"
+	fi
+        return 0
+}
 
 #
 # testPkg - test the condition specified on the package.
@@ -377,6 +441,34 @@
 	return 1
 }
 
+Debian_testPkg() {
+        $DEBUG
+        if [[ $# -ne 2 ]]; then
+                return 1
+        fi
+	DEB="`echo "$2" | tr '[A-Z]' '[a-z]'`"
+        case $1 in
+        "installed")    # package installed, could be either partial or complete
+                dpkg-query -W $DEB > /dev/null 2>&1
+                return $?;;
+        "partial")      # package partially installed
+                #
+                # rpm does not understand the concept of partially installed packages.
+                # So, for now, we always return 1 (ie. false) since it can never be
+                # partially installed packages.
+                #
+                return 1;;
+        "complete")     # package completely installed
+		# dpkg format does not have a verify option, this will return if installed even partially
+                dpkg-query -q $DEB > /dev/null 2>&1
+                return $?;;
+        esac
+
+        # invalid test condition
+        print -u2 "${ERROR_PREF} invalid test operation \"$1\"."
+        return 1
+}
+
 
 PREFIX=`uname -s`
 if [[ -z "$PREFIX" ]]; then
@@ -384,6 +476,12 @@
 	print -u2 "${ERROR_PREF} unable to determince the OS running on this system."
 	exit 1
 fi
+if [[ "$PREFIX" = "Linux" ]]; then
+	. /etc/lsb-release
+        if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then
+		PREFIX="Debian"
+	fi
+fi
 
 OPMODE=""
 SUBOP=""
diff -ruN /opt/SUNWut.orig/lib/utwebadmin /opt/SUNWut/lib/utwebadmin
--- /opt/SUNWut.orig/lib/utwebadmin	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utwebadmin	2008-10-30 10:22:52.000000000 +0100
@@ -92,7 +92,7 @@
     if [ ! -n "$rootShell" ]; then
         rootShell=/bin/sh
     fi
-    for shell in `cat /etc/shells`
+    for shell in `egrep -v '^#' /etc/shells`
     do
         if [ $shell != $rootShell ]; then
             SU_SHELL="-s $shell"
diff -ruN /opt/SUNWut.orig/lib/utxsun /opt/SUNWut/lib/utxsun
--- /opt/SUNWut.orig/lib/utxsun	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/utxsun	2008-10-30 10:22:52.000000000 +0100
@@ -31,12 +31,17 @@
 # fontpath is for a particular system. We'll grep through the
 # XF86Config file. For FCS we'll do this at install time and
 # keep the path in a file.
-if [[ -f /etc/X11/XF86Config ]] ; then
+if [[ -f /etc/X11/xorg.conf ]]; then
+	XCFG_FILE=/etc/X11/xorg.conf
+else
+	XCFG_FILE=/etc/X11/XF86Config
+fi
+if [[ -f $XCFG_FILE ]] ; then
 	# match lines with FontPath that are not commented out,
 	# accumulate the path, but remove double quotes before appending:
 	FONTPATH=$($AWK '$1 == "FontPath" { fp = fp "," substr($2,2,length($2)-2) } \
                         END { print substr(fp,2) } \
-                        ' /etc/X11/XF86Config)
+                        ' $XCFG_FILE)
 	if [ x$FONTPATH != x ] ; then
 		XMOREOPTS="-fp $FONTPATH"
 	fi
diff -ruN /opt/SUNWut.orig/lib/xmgr/gdm/add-dpy /opt/SUNWut/lib/xmgr/gdm/add-dpy
--- /opt/SUNWut.orig/lib/xmgr/gdm/add-dpy	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/lib/xmgr/gdm/add-dpy	2008-10-30 10:22:52.000000000 +0100
@@ -64,7 +64,7 @@
 xcdesc="DisplayManager.*_%d.exportList: SUN_SUNRAY_TOKEN=$token CORONA_TOKEN=$token"
 if [ "$type" = normal ]
 then
-	xsdesc=":%d SunRay local /usr/X11R6/bin/Xnewt :%d"
+	xsdesc=":%d SunRay local /opt/SUNWut/lib/Xnewt :%d"
 else
 	xsdesc="# :%d RESERVED"
 fi
diff -ruN /opt/SUNWut.orig/sbin/utadm /opt/SUNWut/sbin/utadm
--- /opt/SUNWut.orig/sbin/utadm	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/sbin/utadm	2008-10-30 10:22:52.000000000 +0100
@@ -5,7 +5,6 @@
 # Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
-
 #
 #  Configuring SunRay interfaces:
 #  ------------------------------
@@ -219,17 +218,28 @@
 		else
 		  NETWORKS="${ETC_OPT_UT}/net/networks";
 		fi
-		DHCPCONFIG="/etc/dhcpd.conf"
+		if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then
+			DHCPCONFIG="/etc/dhcp3/dhcpd.conf"
+		else
+			DHCPCONFIG="/etc/dhcpd.conf"
+		fi
 		GREP=grep	# XXX need to figure out which <===
-		INIT_DHCP="/etc/init.d/dhcpd";
+		if [[ -f "/etc/init.d/dhcp3-server" ]]; then
+			INIT_DHCP="/etc/init.d/dhcp3-server"
+		else
+			INIT_DHCP="/etc/init.d/dhcpd"
+		fi
 		if [[ -d "/etc/sysconfig/network-scripts" ]] ; then
 		  IFCONFIG_SCRIPT="/etc/sysconfig/network-scripts/ifcfg-"
 		  IFCONFIG_BOOT="ONBOOT=yes"
 		  BOOTPROTO=none
-		else
-		  IFCONFIG_SCRIPT="/etc/sysconfig/network/ifcfg-"
-		  IFCONFIG_BOOT="STARTMODE=onboot"
+		elif [[ -f "/etc/network/interfaces" ]] ; then
+		  IFCONFIG_SCRIPT="/etc/network/interfaces"
 		  BOOTPROTO=static
+		else
+                  IFCONFIG_SCRIPT="/etc/sysconfig/network/ifcfg-"
+                  IFCONFIG_BOOT="STARTMODE=onboot"
+                  BOOTPROTO=static
 		fi
 		IFCFG_INET="";
 
@@ -991,6 +1001,10 @@
   # get the intf's symbolic name
   INTF_NAME=`getent hosts ${INTF_IPA} | awk '{print $2}'`;
   if [ -z "${INTF_NAME}" ]; then
+    # Work around for bug in Ubuntu getent Launchpad BugID 28585
+    INTF_NAME=`getent hosts | grep -w ${INTF_IPA} | awk '{print $2}'`
+  fi
+  if [ -z "${INTF_NAME}" ]; then
     print -u2 "Error: host name for ${INTF_IPA} not found"
     exit 1;
   fi
@@ -1145,8 +1159,40 @@
     ifconfig ${INTF} "${IPADDR}" up netmask "${NETMASK}" broadcast ${BROADCAST};
     RC=$?
     if [[ ${RC} -eq 0 ]] ; then
-      rm -f ${TMPDIR}/tmpfile.$$;
-      cat > ${TMPDIR}/tmpfile.$$ <<-!
+      . /etc/lsb-release 2 > /dev/null
+      if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then
+        rm -f ${TMPDIR}/tmpfile.$$;
+        cat > ${TMPDIR}/tmpfile.$$ <<-!
+# SUNRAY ADD
+auto ${INTF}
+iface ${INTF} inet ${BOOTPROTO}
+address ${IPADDR}
+netmask ${NETMASK}
+# SUNRAY ADD
+!
+        awk ' {
+          if (NF == "0") print $0;
+          else if ($1 == "allow") {print $0; param="false";}
+          else if ($1 == "mapping") {print $0; param="false";}
+          else if ($1 == "auto")
+            {if ($2 == Intf) print "# SUNRAY DEL "$0;
+             else print $0;
+             param="false";}
+          else if ($1 == "iface")
+            {if ($2 == Intf) {print "# SUNRAY DEL "$0; param="true";}
+             else {print $0; param="false";}}
+          else if (param == "true") print "# SUNRAY DEL "$0;
+          else {print $0; param="false";}
+          }' \
+          Intf=${INTF} \
+          ${IFCONFIG_SCRIPT} > ${IFCONFIG_SCRIPT}.$$
+
+        cat ${IFCONFIG_SCRIPT}.$$ ${TMPDIR}/tmpfile.$$ > ${IFCONFIG_SCRIPT}
+        rm -f ${TMPDIR}/tmpfile.$$ ${IFCONFIG_SCRIPT}.$$
+
+      else
+        rm -f ${TMPDIR}/tmpfile.$$;
+        cat > ${TMPDIR}/tmpfile.$$ <<-!
 DEVICE=${INTF} # SUNRAY ADD 
 USERCTL=no # SUNRAY ADD 
 ${IFCONFIG_BOOT} # SUNRAY ADD 
@@ -1156,17 +1202,18 @@
 NETMASK=${NETMASK} # SUNRAY ADD
 IPADDR=${IPADDR} # SUNRAY ADD
 !
-      if [[ -f ${IFCONFIG_SCRIPT}${INTF} ]] ; then
-	sed -e "/^"HWADDR"/!s/^/# SUNRAY DEL /" "${IFCONFIG_SCRIPT}${INTF}" > ${IFCONFIG_SCRIPT}${INTF}.$$
-        #
-        # change ether config so it starts on boot
-	
-	rm -f ${IFCONFIG_SCRIPT}${INTF}
-	cat ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$ > ${IFCONFIG_SCRIPT}${INTF}
-	rm -f ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$
-      else
-        mv -f ${TMPDIR}/tmpfile.$$ ${IFCONFIG_SCRIPT}${INTF};
-      fi
+         if [[ -f ${IFCONFIG_SCRIPT}${INTF} ]] ; then
+           sed -e "/.*/s/^/# SUNRAY DEL /" "${IFCONFIG_SCRIPT}${INTF}" > ${IFCONFIG_SCRIPT}${INTF}.$$
+           #
+           # change ether config so it starts on boot
+  	
+           rm -f ${IFCONFIG_SCRIPT}${INTF}
+ 	  cat ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$ > ${IFCONFIG_SCRIPT}${INTF}
+ 	  rm -f ${IFCONFIG_SCRIPT}${INTF}.$$ ${TMPDIR}/tmpfile.$$
+         else
+           mv -f ${TMPDIR}/tmpfile.$$ ${IFCONFIG_SCRIPT}${INTF};
+         fi
+       fi
     fi
     print "### finished install of \"${INTF}\" interface";
     return $RC
@@ -1187,6 +1234,38 @@
       if [[ ! -s ${IFCONFIG_SCRIPT}${INTF} ]]; then
 	rm -f ${IFCONFIG_SCRIPT}${INTF}
       fi
+    elif [[ -f ${IFCONFIG_SCRIPT} ]] ; then
+      cp ${IFCONFIG_SCRIPT} ${IFCONFIG_SCRIPT}.$$
+      awk ' {
+       if (($2 == "SUNRAY" ) && ($3 == "DEL"))
+         {if (($4 == "auto") && ($5 == Intf))
+            {output="";
+             for (field=4; field<=NF; ++field) {output=output$field" ";} 
+             print output;
+             param="false";}
+          else if (($4 == "iface") && ($5 == Intf ))
+            {output=""; for (field=4; field<=NF; ++field) {output=output$field" ";}
+             print output;
+             param="true";}
+          else if (param == "true")
+            {output=""; for (field=4; field<=NF; ++field) {output=output$field" ";}
+             print output;
+             param="true";}
+          else {print $0; param="false";}
+         }
+       else if (($2 == "SUNRAY") && ($3 == "ADD"))
+         {if (comment_count == "1") {if (remove != "true") {print $0;};comment_count = "2";remove = "false";}
+          else if (comment_count == "2") {comment_count = "1";remove = "possible"}
+          else {comment_count = "1"; remove="possible";}
+         }
+       else if (remove == "possible")
+         if (($1 == "auto") && ($2 == Intf)) {remove="true";}
+         else {remove="false";print "# SUNRAY ADD"; print $0;}
+       else if (remove != "true") {print $0; param="false";}
+      }' \
+      Intf=${INTF} \
+      ${IFCONFIG_SCRIPT}.$$ > ${IFCONFIG_SCRIPT}
+      rm -f ${IFCONFIG_SCRIPT}.$$
     else
       print -u2 "Warning: unable to update ${IFCONFIG_SCRIPT}${INTF}";
     fi
@@ -1826,7 +1905,6 @@
     ${UTDHCPSERVICE} disable > /dev/null 2>&1
 }
 
-
 #
 # adds the SR network configuration for both interface and subnetwork only.
 #
@@ -3164,6 +3242,8 @@
 		lease_file=/var/lib/dhcpd/dhcpd.leases
 	elif [ -f /var/lib/dhcp/db/dhcpd.leases ]; then
                 lease_file=/var/lib/dhcp/db/dhcpd.leases
+	elif [ -f /var/lib/dhcp3/dhcpd.leases ]; then
+		lease_file=/var/lib/dhcp3/dhcpd.leases
         fi
 
 	rm -f $tmp_leases
diff -ruN /opt/SUNWut.orig/sbin/utconfig /opt/SUNWut/sbin/utconfig
--- /opt/SUNWut.orig/sbin/utconfig	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/sbin/utconfig	2008-10-30 10:22:52.000000000 +0100
@@ -240,7 +240,12 @@
     # Define Linux specific LDAP variables
     # Determine which LDAP client package is installed
     #
-    LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)"
+    . /etc/lsb-release
+    if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then
+	LCL_PACKAGE="$(dpkg-query -S /usr/bin/ldapadd | awk -F: '{print $1}' 2>/dev/null)"
+    else
+        LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)"
+    fi
 
     # Define Linux versions of LDAP client commands
     #
@@ -255,7 +260,11 @@
     # Define Linux specific filenames
     #
     ETCSERVICES="/etc/services"
-    DHCPCONFIG="/etc/dhcpd.conf"
+    if [[ -f "/etc/dhcp3/dhcpd.conf" ]]; then
+         DHCPCONFIG="/etc/dhcp3/dhcpd.conf"
+    else
+         DHCPCONFIG="/etc/dhcpd.conf"
+    fi
     ;;
 
   *)
diff -ruN /opt/SUNWut.orig/sbin/utfwadm /opt/SUNWut/sbin/utfwadm
--- /opt/SUNWut.orig/sbin/utfwadm	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/sbin/utfwadm	2008-10-30 10:22:52.000000000 +0100
@@ -144,7 +144,7 @@
 function GetVersion  {
     FW_FILE_INPUT=${1}
     # extract the version string and make file names
-    FW_TYPE=$(od -t x1 $FW_FILE_INPUT | head -1 | awk '{ print sprintf("%s%s%s%s", $2,$3,$4,$5)}') 2> /dev/null
+    FW_TYPE=$(od -t x1 $FW_FILE_INPUT | head -n 1 | awk '{ print sprintf("%s%s%s%s", $2,$3,$4,$5)}') 2> /dev/null
     case $FW_TYPE in
 	4badbeef | 8badbeef)	
             $UTWHAT $FW_FILE_INPUT > ${TMPDIR}/fw_strings.$$
diff -ruN /opt/SUNWut.orig/sbin/utinstall /opt/SUNWut/sbin/utinstall
--- /opt/SUNWut.orig/sbin/utinstall	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/sbin/utinstall	2008-10-30 10:22:52.000000000 +0100
@@ -241,7 +241,7 @@
 	 fi
 	 if [ "$G_OS" = "Linux" ]; then
 	    # Determine GDM Install Path
-	    GDM_PATH=`rpm -ql "gdm" | grep "Init/Default" `
+	    GDM_PATH=`dpkg -L "gdm" | grep "Init/Default" `
 	    if [ $? != 0 ]; then
         	print -u2 "Cannot determine GDM install directory"
 		break;
diff -ruN /opt/SUNWut.orig/sbin/utreplica /opt/SUNWut/sbin/utreplica
--- /opt/SUNWut.orig/sbin/utreplica	2008-10-30 10:20:00.000000000 +0100
+++ /opt/SUNWut/sbin/utreplica	2008-10-30 10:22:52.000000000 +0100
@@ -78,7 +78,13 @@
                         ETCSERVICES=/etc/inet/services
 			LOGFILE="/var/adm/log/$PROGRAM_ID.${TIMESTAMP}.log"
                         ;;
-                Linux)  LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)"
+                Linux)  . /etc/lsb-release
+			if [[ "$DISTRIB_ID" = "Ubuntu" ]] || [[ "$DISTRIB_ID" = "Debian" ]]; then
+				LCL_PACKAGE="$(dpkg-query -S /usr/bin/ldapadd | awk -F: '{print $1}' 2>/dev/null)"
+			else
+				LCL_PACKAGE="$(rpm -qf /usr/bin/ldapadd 2>/dev/null)"
+			fi
+ 
                         LDAPSEARCH="/usr/bin/ldapsearch -x -LLL "
 			GREP=/bin/grep
                         ETCSERVICES=/etc/services
@@ -1130,7 +1136,7 @@
 		    Fatal "$server is already configured as a primary server."
 		elif print $remote_rep | egrep "$SECONDARY_ID"\
 			>/dev/null 2>&1; then
-		    typeset -l tmp_host=`print "$remote_rep" | tail -1`
+		    typeset -l tmp_host=`print "$remote_rep" | tail -n 1`
 		    if [ "${tmp_host}" != $HOSTNAME ]; then
 		    	Fatal "$server is already configured as a secondary server\n"\
 			   "with a different primary."
@@ -1169,7 +1175,7 @@
   then
 	# only check the first line of the file.  This avoids the problem of accidentally
 	# picking up the "replica" attribute which will also have the same string match.
-  	head -1 $DSSERV_REPLOG | grep '^replica: ' >/dev/null 2>&1
+  	head -n 1 $DSSERV_REPLOG | grep '^replica: ' >/dev/null 2>&1
   	if [ $? -ne 0 ]
 	then
 		cat /dev/null > $DSSERV_REPLOG
--- /etc/opt/SUNWut/gdm/SunRayInit/helpers/Default.orig	2009-06-24 21:24:09.000000000 +0200
+++ /etc/opt/SUNWut/gdm/SunRayInit/helpers/Default	2009-07-19 14:51:42.000000000 +0200
@@ -22,16 +22,16 @@
 	sysmodmap=/etc/X11/Xmodmap.remote
 fi
 
-XMODMAP=`which xmodmap 2>/dev/null`
-if [ x$XMODMAP != x ] ; then
-  if [ x$GDM_PARENT_DISPLAY = x ]; then
-    if [ -f $sysmodmap ]; then
-      $XMODMAP $sysmodmap
-    fi
-  else
-    ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
-  fi
-fi
+#XMODMAP=`which xmodmap 2>/dev/null`
+#if [ x$XMODMAP != x ] ; then
+#  if [ x$GDM_PARENT_DISPLAY = x ]; then
+#    if [ -f $sysmodmap ]; then
+#      $XMODMAP $sysmodmap
+#    fi
+#  else
+#    ( DISPLAY=$GDM_PARENT_DISPLAY XAUTHORITY=$GDM_PARENT_XAUTHORITY $XMODMAP -pke ) | $XMODMAP -
+#  fi
+#fi
 
 SETXKBMAP=`which setxkbmap 2>/dev/null`
 if [ x$SETXKBMAP != x ] ; then
@@ -59,4 +59,8 @@
   fi
 fi
 
+setxkbmap -v
+setxkbmap -print
+for i in `seq 9 255` ; do /usr/bin/xset r $i > /dev/null 2>&1 ; done
+
 exit 0
--- /etc/opt/SUNWut/gdm/Xsession.source_wrapper.orig	2009-07-19 16:13:52.000000000 +0200
+++ /etc/opt/SUNWut/gdm/Xsession.source_wrapper	2009-07-19 16:18:04.000000000 +0200
@@ -19,8 +19,8 @@
 
 # This section may need to be extended for future platforms to specify
 # the location of the system default Xsession file
-if [ -f /etc/X11/xdm/Xsession ]; then
-	XSESSION=/etc/X11/xdm/Xsession
+if [ -f /etc/X11/Xsession ]; then
+	XSESSION=/etc/X11/Xsession
 else
 	logger -p user.err -t $0 "Xsession script not found"
 	exit 1
@@ -42,4 +42,4 @@
     done
 fi
 
-. $XSESSION $1 $GDM_LANG
+. $XSESSION "$@"
