diff --git a/Makefile.in b/Makefile.in
index f1995c7..3a901b8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -97,7 +97,7 @@ dpkg:
 packages: dest
 	@case ${SYS_NAME} in \
 	*_darwin_* ) \
-		${COMPILE_PART1} packaging/MacOS && sh ./buildpkg.sh ${DEST} ;; \
+		${COMPILE_PART1} packaging/MacOS && bash ./buildpkg.sh ${DEST} ;; \
 	hp_ux110 ) \
 		${COMPILE_PART1} packaging/HP-UX && swpackage -s  psf-1.2.10-transarc-paths-11.00 ;; \
 	hp_ux11i ) \
diff --git a/acinclude.m4 b/acinclude.m4
index 6e2c9ae..7afc3f5 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -562,6 +562,14 @@ else
 			AFS_SYSNAME="x86_darwin_110"
 			OSXSDK="macosx10.7"
 			;;
+		x86_64-apple-darwin12.*)
+			AFS_SYSNAME="x86_darwin_120"
+			OSXSDK="macosx10.8"
+			;;
+		i?86-apple-darwin12.*)
+			AFS_SYSNAME="x86_darwin_120"
+			OSXSDK="macosx10.8"
+			;;
 		sparc-sun-solaris2.5*)
 			AFS_SYSNAME="sun4x_55"
 			enable_login="yes"
diff --git a/configure.ac b/configure.ac
index bd8b7e9..325c293 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@ AC_CONFIG_SRCDIR([src/config/stds.h])
 AM_INIT_AUTOMAKE
 
 AC_CONFIG_HEADER(src/config/afsconfig.h)
-MACOS_VERSION=1.6.1
+MACOS_VERSION=1.6.2a1
 LINUX_PKGVER=1.6.1
 
 dnl Debian wants the release candidate version in the main upstream version,
diff --git a/src/afs/DARWIN/osi_module.c b/src/afs/DARWIN/osi_module.c
index 020518b..9029253 100644
--- a/src/afs/DARWIN/osi_module.c
+++ b/src/afs/DARWIN/osi_module.c
@@ -56,7 +56,7 @@ afs_modload(struct kmod_info *kmod_info, void *data)
     afs_global_lock = lck_mtx_alloc_init(openafs_lck_grp, 0);
 
     if (ret = vfs_fsadd(&afs_vfsentry, &afs_vfstable)) {
-	printf("AFS: vfs_fsadd failed. aborting: %d\n", ret);
+	afs_warn("AFS: vfs_fsadd failed. aborting: %d\n", ret);
 	afs_vfstable = NULL;
 	goto fsadd_out;
     }
@@ -65,14 +65,14 @@ afs_modload(struct kmod_info *kmod_info, void *data)
     afs_cdev.d_ioctl = &afs_cdev_ioctl;
     afs_cdev_major = cdevsw_add(-1, &afs_cdev);
     if (afs_cdev_major == -1) {
-	printf("AFS: cdevsw_add failed. aborting\n");
+	afs_warn("AFS: cdevsw_add failed. aborting\n");
 	goto cdevsw_out;
     }
     afs_cdev_devfs_handle = devfs_make_node(makedev(afs_cdev_major, 0),
                                             DEVFS_CHAR, UID_ROOT, GID_WHEEL,
                                             0666, "openafs_ioctl", 0);
     if (!afs_cdev_devfs_handle) {
-	printf("AFS: devfs_make_node failed. aborting\n");
+	afs_warn("AFS: devfs_make_node failed. aborting\n");
 	cdevsw_remove(afs_cdev_major, &afs_cdev);
     cdevsw_out:
 	vfs_fsremove(afs_vfstable);
@@ -88,11 +88,11 @@ afs_modload(struct kmod_info *kmod_info, void *data)
     afs_vfsconf.vfc_typenum = maxvfsconf++;	/* oddly not VT_AFS */
     afs_vfsconf.vfc_flags = MNT_NODEV;
     if (vfsconf_add(&afs_vfsconf)) {
-	printf("AFS: vfsconf_add failed. aborting\n");
+	afs_warn("AFS: vfsconf_add failed. aborting\n");
 	return KERN_FAILURE;
     }
     if (sysent[AFS_SYSCALL].sy_call != nosys) {
-	printf("AFS_SYSCALL in use. aborting\n");
+	afs_warn("AFS_SYSCALL in use. aborting\n");
 	return KERN_FAILURE;
     }
     sysent[SYS_setgroups].sy_call = Afs_xsetgroups;
@@ -103,7 +103,7 @@ afs_modload(struct kmod_info *kmod_info, void *data)
     sysent[AFS_SYSCALL].sy_funnel = KERNEL_FUNNEL;
 #endif
 #endif
-    printf("%s kext loaded; %u pages at 0x%lx (load tag %u).\n",
+    afs_warn("%s kext loaded; %u pages at 0x%lx (load tag %u).\n",
 	   kmod_info->name, (unsigned)kmod_info->size / PAGE_SIZE,
 	   (unsigned long)kmod_info->address, (unsigned)kmod_info->id);
 
@@ -115,6 +115,8 @@ afs_modunload(struct kmod_info * kmod_info, void *data)
 {
     if (afs_globalVFS)
 	return KERN_FAILURE;
+    if ((afs_initState != 0) || (afs_shuttingdown))
+	return KERN_FAILURE;
 #ifdef AFS_DARWIN80_ENV
     if (vfs_fsremove(afs_vfstable))
 	return KERN_FAILURE;
@@ -133,7 +135,7 @@ afs_modunload(struct kmod_info * kmod_info, void *data)
     MUTEX_FINISH();
     lck_mtx_free(afs_global_lock, openafs_lck_grp);
 #endif
-    printf("%s kext unloaded; (load tag %u).\n",
+    afs_warn("%s kext unloaded; (load tag %u).\n",
 	   kmod_info->name, (unsigned)kmod_info->id);
     return KERN_SUCCESS;
 }
diff --git a/src/afs/afs_call.c b/src/afs/afs_call.c
index 0841090..f384ec3 100644
--- a/src/afs/afs_call.c
+++ b/src/afs/afs_call.c
@@ -66,7 +66,9 @@ static int AFS_Running = 0;
 static int afs_CacheInit_Done = 0;
 static int afs_Go_Done = 0;
 extern struct interfaceAddr afs_cb_interface;
+#ifdef RXK_LISTENER_ENV
 static int afs_RX_Running = 0;
+#endif
 static int afs_InitSetup_done = 0;
 afs_int32 afs_numcachefiles = -1;
 afs_int32 afs_numfilesperdir = -1;
@@ -1373,6 +1375,15 @@ afs_shutdown(void)
     afs_FlushAllVCaches();
 #endif
 
+    afs_termState = AFSOP_STOP_BKG;
+
+    afs_warn("BkG... ");
+    /* Wake-up afs_brsDaemons so that we don't have to wait for a bkg job! */
+    while (afs_termState == AFSOP_STOP_BKG) {
+	afs_osi_Wakeup(&afs_brsDaemons);
+	afs_osi_Sleep(&afs_termState);
+    }
+
     afs_warn("CB... ");
 
     afs_termState = AFSOP_STOP_RXCALLBACK;
@@ -1395,12 +1406,6 @@ afs_shutdown(void)
 	    afs_osi_Sleep(&afs_termState);
 	}
     }
-    afs_warn("BkG... ");
-    /* Wake-up afs_brsDaemons so that we don't have to wait for a bkg job! */
-    while (afs_termState == AFSOP_STOP_BKG) {
-	afs_osi_Wakeup(&afs_brsDaemons);
-	afs_osi_Sleep(&afs_termState);
-    }
     afs_warn("CTrunc... ");
     /* Cancel cache truncate daemon. */
     while (afs_termState == AFSOP_STOP_TRUNCDAEMON) {
diff --git a/src/afs/afs_cell.c b/src/afs/afs_cell.c
index f688689..5444cf4 100644
--- a/src/afs/afs_cell.c
+++ b/src/afs/afs_cell.c
@@ -57,7 +57,11 @@ afs_StopAFSDB(void)
 	afs_osi_Wakeup(&afsdb_req);
     } else {
 	afsdb_handler_shutdown = 1;
+#if defined(AFS_SUN5_ENV) || defined(RXK_LISTENER_ENV) || defined(RXK_UPCALL_ENV)
 	afs_termState = AFSOP_STOP_RXEVENT;
+#else
+	afs_termState = AFSOP_STOP_COMPLETE;
+#endif
 	afs_osi_Wakeup(&afs_termState);
     }
 }
diff --git a/src/afs/afs_daemons.c b/src/afs/afs_daemons.c
index 23655e3..36140b3 100644
--- a/src/afs/afs_daemons.c
+++ b/src/afs/afs_daemons.c
@@ -90,7 +90,7 @@ afs_CheckServerDaemon(void)
     last10MinCheck = lastCheck = osi_Time();
     while (1) {
 	if (afs_termState == AFSOP_STOP_CS) {
-	    afs_termState = AFSOP_STOP_BKG;
+	    afs_termState = AFSOP_STOP_TRUNCDAEMON;
 	    afs_osi_Wakeup(&afs_termState);
 	    break;
 	}
@@ -108,7 +108,7 @@ afs_CheckServerDaemon(void)
 	}
 	/* shutdown check. */
 	if (afs_termState == AFSOP_STOP_CS) {
-	    afs_termState = AFSOP_STOP_BKG;
+	    afs_termState = AFSOP_STOP_TRUNCDAEMON;
 	    afs_osi_Wakeup(&afs_termState);
 	    break;
 	}
@@ -308,7 +308,7 @@ afs_Daemon(void)
 	    if (afs_CheckServerDaemonStarted)
 		afs_termState = AFSOP_STOP_CS;
 	    else
-		afs_termState = AFSOP_STOP_BKG;
+		afs_termState = AFSOP_STOP_TRUNCDAEMON;
 	    afs_osi_Wakeup(&afs_termState);
 	    return;
 	}
@@ -1045,7 +1045,7 @@ afs_BackgroundDaemon(void)
 
 	if (afs_termState == AFSOP_STOP_BKG) {
 	    if (--afs_nbrs <= 0)
-		afs_termState = AFSOP_STOP_TRUNCDAEMON;
+		afs_termState = AFSOP_STOP_RXCALLBACK;
 	    ReleaseWriteLock(&afs_xbrs);
 	    afs_osi_Wakeup(&afs_termState);
 #ifdef AFS_DARWIN80_ENV
diff --git a/src/cf/osconf.m4 b/src/cf/osconf.m4
index 93a5279..0c2faff 100644
--- a/src/cf/osconf.m4
+++ b/src/cf/osconf.m4
@@ -394,7 +394,7 @@ case $AFS_SYSNAME in
 		XLIBS="${LIB_AFSDB} ${XBSA_XLIBS} -framework CoreFoundation"
 		;;
 
-	*_darwin_100 | *_darwin_110 )
+	*_darwin_100 | *_darwin_110 | *_darwin_120 )
 		AFSD_LDFLAGS="-F/System/Library/PrivateFrameworks -framework DiskArbitration -framework SystemConfiguration -framework IOKit -framework CoreFoundation"
 		MT_CFLAGS='-DAFS_PTHREAD_ENV -D_REENTRANT ${XCFLAGS} ${ARCHFLAGS}'
 		MT_LIBS="${LIB_AFSDB} -framework CoreFoundation"
diff --git a/src/config/afs_sysnames.h b/src/config/afs_sysnames.h
index f3d8bdd..32e041f 100644
--- a/src/config/afs_sysnames.h
+++ b/src/config/afs_sysnames.h
@@ -70,6 +70,9 @@
 #define SYS_NAME_ID_x86_darwin_110       517
 #define SYS_NAME_ID_amd64_darwin_110     518
 #define SYS_NAME_ID_arm_darwin_110       519
+#define SYS_NAME_ID_x86_darwin_120       520
+#define SYS_NAME_ID_amd64_darwin_120     521
+#define SYS_NAME_ID_arm_darwin_120       522
 
 #define SYS_NAME_ID_next_mach20		 601
 #define SYS_NAME_ID_next_mach30		 602
diff --git a/src/config/param.x86_darwin_120.h b/src/config/param.x86_darwin_120.h
new file mode 100644
index 0000000..da6f48a
--- /dev/null
+++ b/src/config/param.x86_darwin_120.h
@@ -0,0 +1,246 @@
+#ifndef UKERNEL
+/* This section for kernel libafs compiles only */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+#define AFS_ENV                 1
+#define AFS_64BIT_ENV           1	/* Defines afs_int32 as int, not long. */
+#define AFS_64BIT_CLIENT        1
+#define AFS_64BIT_IOPS_ENV	1
+#if defined(__ppc__)
+#define AFS_PPC_ENV		1
+#elif defined(__i386__) || defined(__amd64__)
+#define AFS_X86_ENV		1
+#else
+#error Unsupported architecture
+#endif
+#ifdef __amd64__
+#define AFS_64BITUSERPOINTER_ENV 1
+#endif
+#define AFS_64BIT_SIZEOF 1 /* seriously? */
+#include <afs/afs_sysnames.h>
+
+#define AFS_DARWIN_ENV
+#define AFS_DARWIN70_ENV
+#define AFS_DARWIN80_ENV
+#define AFS_DARWIN90_ENV
+#define AFS_DARWIN100_ENV
+#define AFS_DARWIN110_ENV
+#define AFS_DARWIN120_ENV
+#undef  AFS_NONFSTRANS
+#define AFS_NONFSTRANS
+#define AFS_SYSCALL             230
+#define AFS_NAMEI_ENV 1
+#define DARWIN_REFBASE 3
+#define AFS_WARNUSER_MARINER_ENV 1
+#define AFS_CACHE_VNODE_PATH
+#define AFS_NEW_BKG 1
+#define NEED_IOCTL32
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS    "afs"
+
+/* Machine / Operating system information */
+#if defined(__ppc__)
+#define sys_ppc_darwin_12	1
+#define sys_ppc_darwin_13	1
+#define sys_ppc_darwin_14	1
+#define sys_ppc_darwin_60	1
+#define sys_ppc_darwin_70	1
+#define sys_ppc_darwin_80	1
+#define sys_ppc_darwin_90	1
+#define sys_ppc_darwin_100	1
+#define SYS_NAME		"ppc_darwin_100"
+#define SYS_NAME_ID		SYS_NAME_ID_ppc_darwin_100
+#define AFSBIG_ENDIAN		1
+#elif defined(__ppc64__)
+#define sys_ppc_darwin_12	1
+#define sys_ppc_darwin_13	1
+#define sys_ppc_darwin_14	1
+#define sys_ppc_darwin_60	1
+#define sys_ppc_darwin_70	1
+#define sys_ppc_darwin_80	1
+#define sys_ppc_darwin_90	1
+#define sys_ppc_darwin_100	1
+#define sys_ppc64_darwin_100	1
+#define SYS_NAME		"ppc64_darwin_100"
+#define SYS_NAME_ID		SYS_NAME_ID_ppc64_darwin_100
+#define AFSBIG_ENDIAN		1
+#elif defined(__i386__)
+#define sys_x86_darwin_12	1
+#define sys_x86_darwin_13	1
+#define sys_x86_darwin_14	1
+#define sys_x86_darwin_60	1
+#define sys_x86_darwin_70	1
+#define sys_x86_darwin_80	1
+#define sys_x86_darwin_90	1
+#define sys_x86_darwin_100	1
+#define sys_x86_darwin_110      1
+#define sys_x86_darwin_120      1
+#define SYS_NAME		"x86_darwin_120"
+#define SYS_NAME_ID		SYS_NAME_ID_x86_darwin_120
+#define AFSLITTLE_ENDIAN	1
+#elif defined(__amd64__)
+#define sys_x86_darwin_12	1
+#define sys_x86_darwin_13	1
+#define sys_x86_darwin_14	1
+#define sys_x86_darwin_60	1
+#define sys_x86_darwin_70	1
+#define sys_x86_darwin_80	1
+#define sys_x86_darwin_90	1
+#define sys_x86_darwin_100	1
+#define sys_amd64_darwin_100	1
+#define sys_amd64_darwin_110      1
+#define sys_amd64_darwin_120      1
+#define SYS_NAME		"amd64_darwin_120"
+#define SYS_NAME_ID		SYS_NAME_ID_amd64_darwin_120
+#define AFSLITTLE_ENDIAN	1
+#else
+#error Unsupported architecture
+#endif
+#define AFS_HAVE_FFS    1	/* Use system's ffs. */
+
+#define AFS_GCPAGS               0
+#define RXK_UPCALL_ENV         1
+#define RXK_TIMEDSLEEP_ENV       1
+
+#ifdef KERNEL
+#undef MACRO_BEGIN
+#undef MACRO_END
+#include <kern/macro_help.h>
+#define AFS_GLOBAL_SUNLOCK        1
+#define AFS_VFS34       1	/* What is VFS34??? */
+#define afsio_iov       uio_iov
+#define afsio_iovcnt    uio_iovcnt
+#define afsio_offset    uio_offset
+#define afsio_seg       uio_segflg
+#define afsio_resid     uio_resid
+#define AFS_UIOSYS      UIO_SYSSPACE
+#define AFS_UIOUSER     UIO_USERSPACE
+#define AFS_CLBYTES     CLBYTES
+#define osi_GetTime(x)  microtime(x)
+#define AFS_KALLOC(x)   _MALLOC(x, M_TEMP, M_WAITOK)
+#define AFS_KFREE(x,y)  _FREE(x,M_TEMP)
+#define v_count         v_usecount
+#define v_vfsp          v_mount
+#define vfs_bsize       mnt_stat.f_bsize
+#define vfs_fsid        mnt_stat.f_fsid
+#define va_nodeid       va_fileid
+#define vfs_vnodecovered mnt_vnodecovered
+#define direct          dirent
+
+#define BIND_8_COMPAT
+
+#endif
+#endif /* AFS_PARAM_H */
+
+#else /* !defined(UKERNEL) */
+
+/* This section for user space compiles only */
+
+#ifndef AFS_PARAM_H
+#define AFS_PARAM_H
+
+#define AFS_ENV                 1
+#define AFS_64BIT_ENV           1	/* Defines afs_int32 as int, not long. */
+#define AFS_64BIT_CLIENT        1
+#if defined(__ppc__)
+#define AFS_PPC_ENV		1
+#elif defined(__i386__) || defined(__amd64__)
+#define AFS_X86_ENV		1
+#else
+#error Unsupported architecture
+#endif
+#ifdef __amd64__
+#define AFS_64BITUSERPOINTER_ENV 1
+#endif
+
+#include <afs/afs_sysnames.h>
+#define AFS_USERSPACE_ENV
+#define AFS_USR_DARWIN_ENV
+#define AFS_USR_DARWIN70_ENV
+#define AFS_USR_DARWIN80_ENV
+#define AFS_USR_DARWIN90_ENV
+#define AFS_USR_DARWIN100_ENV
+#define AFS_USR_DARWIN110_ENV
+#define AFS_USR_DARWIN120_ENV
+#undef  AFS_NONFSTRANS
+#define AFS_NONFSTRANS
+#define AFS_SYSCALL             230
+#define DARWIN_REFBASE 0
+#define AFS_WARNUSER_MARINER_ENV 1
+
+/* File system entry (used if mount.h doesn't define MOUNT_AFS */
+#define AFS_MOUNT_AFS    "afs"
+
+/* Machine / Operating system information */
+#if defined(__ppc__)
+#define sys_ppc_darwin_12	1
+#define sys_ppc_darwin_13	1
+#define sys_ppc_darwin_14	1
+#define sys_ppc_darwin_60	1
+#define sys_ppc_darwin_70	1
+#define sys_ppc_darwin_80	1
+#define sys_ppc_darwin_90	1
+#define sys_ppc_darwin_100	1
+#define SYS_NAME		"ppc_darwin_100"
+#define SYS_NAME_ID		SYS_NAME_ID_ppc_darwin_100
+#define AFSBIG_ENDIAN		1
+#elif defined(__i386__)
+#define sys_x86_darwin_12	1
+#define sys_x86_darwin_13	1
+#define sys_x86_darwin_14	1
+#define sys_x86_darwin_60	1
+#define sys_x86_darwin_70	1
+#define sys_x86_darwin_80	1
+#define sys_x86_darwin_100	1
+#define sys_x86_darwin_110	1
+#define sys_x86_darwin_120	1
+#define SYS_NAME		"x86_darwin_120"
+#define SYS_NAME_ID		SYS_NAME_ID_x86_darwin_120
+#define AFSLITTLE_ENDIAN	1
+#elif defined(__amd64__)
+#define sys_x86_darwin_12	1
+#define sys_x86_darwin_13	1
+#define sys_x86_darwin_14	1
+#define sys_x86_darwin_60	1
+#define sys_x86_darwin_70	1
+#define sys_x86_darwin_80	1
+#define sys_x86_darwin_100	1
+#define sys_amd64_darwin_100	1
+#define sys_amd64_darwin_110	1
+#define sys_amd64_darwin_120	1
+#define SYS_NAME		"amd64_darwin_120"
+#define SYS_NAME_ID		SYS_NAME_ID_amd64_darwin_120
+#define AFSLITTLE_ENDIAN	1
+#else
+#error Unsupported architecture
+#endif
+#define AFS_HAVE_FFS    1	/* Use system's ffs. */
+
+#define AFS_UIOSYS      UIO_SYSSPACE
+#define AFS_UIOUSER     UIO_USERSPACE
+
+#define AFS_GCPAGS                0	/* if nonzero, garbage collect PAGs */
+#define RXK_LISTENER_ENV          1
+
+#define AFS_VFS34       1	/* What is VFS34??? */
+#define afsio_iov       uio_iov
+#define afsio_iovcnt    uio_iovcnt
+#define afsio_offset    uio_offset
+#define afsio_seg       uio_segflg
+#define afsio_resid     uio_resid
+#define AFS_UIOSYS      UIO_SYSSPACE
+#define AFS_UIOUSER     UIO_USERSPACE
+#define        VATTR_NULL      usr_vattr_null
+
+#define AFS_DIRENT
+#ifndef CMSERVERPREF
+#define CMSERVERPREF
+#endif
+
+#define BIND_8_COMPAT
+#endif /* AFS_PARAM_H */
+
+#endif /* !defined(UKERNEL) */
diff --git a/src/libafs/MakefileProto.DARWIN.in b/src/libafs/MakefileProto.DARWIN.in
index cbabcff..15a113a 100644
--- a/src/libafs/MakefileProto.DARWIN.in
+++ b/src/libafs/MakefileProto.DARWIN.in
@@ -41,16 +41,16 @@ DBUG =
 DEFINES= -D_KERNEL -DKERNEL -DKERNEL_PRIVATE -DDIAGNOSTIC -DUSE_SELECT -DMACH_USER_API -DMACH_KERNEL
 KINCLUDES=-I${KROOT}/System/Library/Frameworks/Kernel.framework/Headers
 
-<ppc_darwin_80 x86_darwin_80>
+<ppc_darwin_70 ppc_darwin_80 x86_darwin_80>
 KOPTS_DBUG=-g
 <ppc_darwin_90 x86_darwin_90>
 KOPTS_DBUG=-ggdb
-<x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90>
 KOPTS_DBUG=-gdwarf-2
-<ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_100 x86_darwin_110>
-KOPTS_ppc=-static -nostdinc -nostdlib -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch ppc -Dppc -DPPC -D__PPC__ -DPAGE_SIZE_FIXED -mcpu=750 -mmultiple -fschedule-insns -force_cpusubtype_ALL
-KOPTS_x86=-static -nostdinc -nostdlib -fmessage-length=0 -pipe -nostdinc -fno-builtin -Wno-trigraphs -force_cpusubtype_ALL -msoft-float -O0 -fno-common -mkernel -finline -fno-keep-inline-functions -fasm-blocks -arch i386 -Di386 -DI386 -D__I386__ -DPAGE_SIZE_FIXED
-KOPTS_amd64=-static -nostdinc -nostdlib -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch x86_64 -Damd64 -DAMD64 -D__AMD64__ -DPAGE_SIZE_FIXED -march=x86-64 -mpreferred-stack-boundary=4 -falign-functions=4 -m64 -mkernel -mno-red-zone
+<all -ppc_darwin_70>
+KOPTS_ppc=-static -nostdinc -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch ppc -Dppc -DPPC -D__PPC__ -DPAGE_SIZE_FIXED -mcpu=750 -mmultiple -fschedule-insns -force_cpusubtype_ALL
+KOPTS_x86=-static -nostdinc -fmessage-length=0 -pipe -nostdinc -fno-builtin -Wno-trigraphs -force_cpusubtype_ALL -msoft-float -O0 -fno-common -mkernel -finline -fno-keep-inline-functions -fasm-blocks -arch i386 -Di386 -DI386 -D__I386__ -DPAGE_SIZE_FIXED
+KOPTS_amd64=-static -nostdinc -fno-builtin -finline -fno-keep-inline-functions -msoft-float -mlong-branch -fsigned-bitfields -arch x86_64 -Damd64 -DAMD64 -D__AMD64__ -DPAGE_SIZE_FIXED -march=x86-64 -mpreferred-stack-boundary=4 -falign-functions=4 -m64 -mkernel -mno-red-zone
 ARCH_ppc=$(shell echo "${ARCHFLAGS}" | grep -q -w ppc && echo yes || echo ${ARCHFLAGS} | egrep -q -w -v 'ppc|i386|x86_64' && arch | grep -q -w ppc && echo yes)
 ARCH_x86=$(shell echo "${ARCHFLAGS}" | grep -q -w i386 && echo yes || echo ${ARCHFLAGS} | egrep -q -w -v 'ppc|i386|x86_64' && arch | grep -q -w i386 && echo yes)
 ARCH_amd64=$(shell echo "${ARCHFLAGS}" | grep -q -w x86_64 && echo yes || echo ${ARCHFLAGS} | egrep -q -w -v 'ppc|i386|x86_64' && arch | grep -q -w x86_64 && echo yes)
@@ -58,9 +58,9 @@ OBJ_ppc=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "$@.ppc")
 OBJ_x86=$(shell echo "${ARCH_x86}" | grep -q -w yes && echo "$@.x86")
 OBJ_amd64=$(shell echo "${ARCH_amd64}" | grep -q -w yes && echo "$@.amd64")
 
-<x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90>
 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS) -Xlinker -kext
-<all -x86_darwin_100 -x86_darwin_110>
+<ppc_darwin_70 ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90>
 MODLD=$(CC) -static $(KOPTS_DBUG) -nostdlib $(ARCHFLAGS)
 <all>
 
@@ -79,7 +79,7 @@ DESTDIRS = single_destdir
 
 include Makefile.common
 
-<ppc_darwin_80 x86_darwin_80 ppc_darwin_90 x86_darwin_90 x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70>
 # override suffix rule; unfortunately, this causes a warning message
 .c.o:
 	if [ "$(ARCH_ppc)" = "yes" ]; then \
@@ -103,15 +103,9 @@ CRULE_OPT_x86=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_x86) $(
 CRULE_OPT_amd64=$(CC) $(COMMON_INCLUDE) $(KERN_DBG) $(KERN_OPTMZ) $(CFLAGS_amd64) $(CFLAGS-$@) -o $(patsubst %.o,%.o.amd64,$@) -c $? 
 CRULE_OPT=$(shell echo "${ARCH_ppc}" | grep -q -w yes && echo "${CRULE_OPT_ppc} && "; echo "${ARCH_x86}" | grep -q -w yes && echo "${CRULE_OPT_x86} && "; echo "${ARCH_amd64}" | grep -q -w yes && echo "${CRULE_OPT_amd64} && ";echo "lipo -create ${OBJ_ppc} ${OBJ_x86} ${OBJ_amd64} -output $@")
 
-<all -ppc_darwin_80 -x86_darwin_80 -ppc_darwin_90 -x86_darwin_90 -x86_darwin_100 -x86_darwin_110>
-MODLD=$(LD)
-CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
 <ppc_darwin_70>
+CFLAGS=${KINCLUDES} -I. -I.. -I${TOP_OBJDIR}/src/config $(DEFINES) $(KDEFS) $(KOPTS)
 KOPTS=-static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
-<ppc_darwin_60>
-KOPTS=-no-cpp-precomp -static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
-<ppc_darwin_14 ppc_darwin_13 ppc_darwin_12>
-KOPTS=-no-precomp -static -fno-common -finline -fno-keep-inline-functions -force_cpusubtype_ALL -msoft-float -mlong-branch 
 
 <all>
 setup:
@@ -133,14 +127,14 @@ INST_LIBAFS = ${DESTDIR}${afskerneldir}/afs-nfs.kext
 INST_LIBAFSNONFS = ${DESTDIR}${afskerneldir}/afs.kext
 DEST_LIBAFS = ${DEST}/root.client/usr/vice/etc/afs-nfs.kext
 DEST_LIBAFSNONFS = ${DEST}/root.client/usr/vice/etc/afs.kext
-<all -ppc_darwin_90 -x86_darwin_90 -x86_darwin_100 -x86_darwin_110>
+<ppc_darwin_70 ppc_darwin_80 x86_darwin_80>
 LIBAFSDSYM =
 LIBAFSNONFSDSYM =
 INST_LIBAFSDSYM =
 INST_LIBAFSNONFSDSYM =
 DEST_LIBAFSDSYM =
 DEST_LIBAFSNONFSDSYM =
-<ppc_darwin_90 x86_darwin_90 x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
 LIBAFSDSYM = libafs.o.dSYM
 LIBAFSNONFSDSYM = libafs.nonfs.o.dSYM
 INST_LIBAFSDSYM = ${DESTDIR}${afskerneldir}/afs-nfs.kext.dSYM
@@ -156,7 +150,7 @@ install_libafs: $(LIBAFSNONFS) $(LIBAFSNONFSDSYM) ;
 	$(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${INST_LIBAFSNONFS}/Contents/Info.plist
 	-mkdir -p ${INST_LIBAFSNONFS}/Contents/MacOS
 	$(INSTALL) -m 644 ${LIBAFSNONFS} ${INST_LIBAFSNONFS}/Contents/MacOS/afs
-<ppc_darwin_90 x86_darwin_90 x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
 	-mkdir -p ${INST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
 	$(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Info.plist ${INST_LIBAFSNONFSDSYM}/Contents
 	$(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Resources/DWARF/${LIBAFSNONFS} ${INST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
@@ -168,7 +162,7 @@ dest_libafs: $(LIBAFSNONFS) $(LIBAFSNONFSDSYM) ;
 	$(INSTALL) -m 644 ../${DARWIN_INFOFILE} ${DEST_LIBAFSNONFS}/Contents/Info.plist
 	-mkdir -p ${DEST_LIBAFSNONFS}/Contents/MacOS
 	$(INSTALL) -m 644 ${LIBAFSNONFS} ${DEST_LIBAFSNONFS}/Contents/MacOS/afs
-<ppc_darwin_90 x86_darwin_90 x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
 	-mkdir -p ${DEST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
 	$(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Info.plist ${DEST_LIBAFSNONFSDSYM}/Contents
 	$(INSTALL) ${LIBAFSNONFSDSYM}/Contents/Resources/DWARF/${LIBAFSNONFS} ${DEST_LIBAFSNONFSDSYM}/Contents/Resources/DWARF
@@ -180,7 +174,7 @@ ${LIBAFS}: $(AFSAOBJS) $(AFSNFSOBJS)
 ${LIBAFSNONFS}:  $(AFSAOBJS) $(AFSNONFSOBJS)
 	$(MODLD) -r -o ${LIBAFSNONFS} ${AFSAOBJS} ${AFSNONFSOBJS} -lcc_kext
 
-<ppc_darwin_90 x86_darwin_90 x86_darwin_100 x86_darwin_110>
+<all -ppc_darwin_70 -ppc_darwin_80 -x86_darwin_80>
 $(LIBAFSDSYM): ${LIBAFS}
 	dsymutil -o ${LIBAFS}.dSYM ${LIBAFS}
 ${LIBAFSNONFSDSYM}: ${LIBAFSNONFS}
diff --git a/src/libafs/afs.x86_darwin_120.plist.in b/src/libafs/afs.x86_darwin_120.plist.in
new file mode 100644
index 0000000..a138571
--- /dev/null
+++ b/src/libafs/afs.x86_darwin_120.plist.in
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
+<plist version="0.9">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>afs</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.openafs.filesystems.afs</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>8.0</string>
+	<key>CFBundleName</key>
+	<string>afs</string>
+	<key>CFBundlePackageType</key>
+	<string>KEXT</string>
+	<key>CFBundleShortVersionString</key>
+	<string>@MACOS_VERSION@</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>@MACOS_VERSION@</string>
+	<key>OSBundleLibraries</key>
+	<dict>
+		<key>com.apple.kpi.bsd</key>
+		<string>8.0.0</string>
+		<key>com.apple.kpi.mach</key>
+		<string>8.0.0</string>
+		<key>com.apple.kpi.libkern</key>
+		<string>8.0</string>
+	</dict>
+</dict>
+</plist>
diff --git a/src/packaging/MacOS/InstallationCheck.12 b/src/packaging/MacOS/InstallationCheck.12
new file mode 100644
index 0000000..28a6e1f
--- /dev/null
+++ b/src/packaging/MacOS/InstallationCheck.12
@@ -0,0 +1,19 @@
+#!/bin/sh
+majorvers=`uname -r | sed 's/\..*//'`
+if [ $majorvers -ne 12 ]; then
+	exit 112
+fi
+
+# check for temporary versions of ThisCell and CellAlias
+# and move them aside
+tmpthiscell=/private/tmp/org.OpenAFS.Install.ThisCell.$USER
+tmpcellalias=/private/tmp/org.OpenAFS.Install.CellAlias.$USER
+date=`date +%Y%m%d%H%M`
+if [ -e $tmpthiscell ]; then
+    mv -f $tmpthiscell $tmpthiscell.$date
+fi
+if [ -e $tmpcellalias ]; then
+    mv -f $tmpcellalias $tmpcellalias.$date
+fi
+
+exit 0
diff --git a/src/packaging/MacOS/InstallationCheck.strings.12 b/src/packaging/MacOS/InstallationCheck.strings.12
new file mode 100644
index 0000000..f25b14d
--- /dev/null
+++ b/src/packaging/MacOS/InstallationCheck.strings.12
@@ -0,0 +1 @@
+"16" = "This OpenAFS release requires Mountain Lion (10.8)";
diff --git a/src/packaging/MacOS/ReadMe.rtf.12 b/src/packaging/MacOS/ReadMe.rtf.12
new file mode 100644
index 0000000..3e8c9d6
--- /dev/null
+++ b/src/packaging/MacOS/ReadMe.rtf.12
@@ -0,0 +1,7 @@
+{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320
+{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\margl1440\margr1440\vieww9000\viewh9000\viewkind0
+\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural
+
+\f0\fs24 \cf0 This release of OpenAFS is targeted at MacOS 10.8 (Mountain Lion) and is not recommended for use with any other version.}
\ No newline at end of file
diff --git a/src/packaging/MacOS/buildpkg.sh.in b/src/packaging/MacOS/buildpkg.sh.in
index 59bdfb1..ca20c81 100644
--- a/src/packaging/MacOS/buildpkg.sh.in
+++ b/src/packaging/MacOS/buildpkg.sh.in
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 # Portions Copyright (c) 2003, 2006 Apple Computer, Inc.  All rights reserved.
 
 if [ -z "$1" ]; then
@@ -40,32 +40,27 @@ fi
 if [ $majorvers -eq 11 ]; then
   RELNAME="Lion"
 fi
+if [ $majorvers -eq 12 ]; then
+  RELNAME="MountainLion"
+fi
 
 PKGROOT=$CURDIR/pkgroot
 PKGRES=$CURDIR/pkgres
 DPKGROOT=$CURDIR/dpkgroot
 DPKGRES=$CURDIR/dpkgres
-if [ $majorvers -ge 7 ]; then
-    SEP=:
-    package=/Developer/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
-    if [ ! -x $package ]; then
-       echo "PackageMaker does not exist. Please run this script on a MacOS X system"
-      echo "with the DeveloperTools package installed"
-      exit 1
-    fi
+PACKAGEMAKER=""
+if [ -e "/Developer/usr/bin/packagemaker" ]; then
+    PACKAGEMAKER="/Developer/usr/bin/packagemaker"
 else
-    SEP=.
-    package=/usr/bin/package
-    if [ ! -f $package ]; then
-       echo "$package does not exist. Please run this script on a MacOS X system"
-      echo "with the BSD subsystem installed"
-      exit 1
-    fi
-    if grep -q 'set resDir = ""' $package ; then
-       echo $package is buggy.
-       echo remove the line \''set resDir = ""'\' from $package and try again
-       exit 1
-    fi
+    while IFS= read -d $'\0' -r file ; do
+        if [ -e "$file/Contents/MacOS/PackageMaker" ]; then
+            PACKAGEMAKER="$file/Contents/MacOS/PackageMaker"
+        fi
+    done < <(mdfind -0 "(kMDItemCFBundleIdentifier == 'com.apple.PackageMaker')")
+fi
+if [ -z "$PACKAGEMAKER" ]; then
+    echo "packagemaker not found"
+    exit 1
 fi
 
 if [ $firstpass = yes ]; then
@@ -107,6 +102,8 @@ if [ $firstpass = yes ]; then
        exit 1
     fi
 
+    SEP=:
+
     rm -rf $PKGROOT
     mkdir $PKGROOT
 
@@ -223,9 +220,9 @@ if [ $secondpass = yes ]; then
 	cp background.jpg $DPKGRES/background.jpg
 	chown -R root${SEP}wheel $DPKGRES
 	rm -rf $CURDIR/OpenAFS-debug-extension.pkg
-	echo $package -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \
+	echo $PACKAGEMAKER -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \
 	    -i OpenAFS-debug.Info.plist -d OpenAFS-debug.Description.plist
-	$package -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \
+	"$PACKAGEMAKER" -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \
 	    -i OpenAFS-debug.Info.plist -d OpenAFS-debug.Description.plist
     fi
 
@@ -255,13 +252,13 @@ if [ $secondpass = yes ]; then
     chown -R root${SEP}wheel $PKGRES
     rm -rf $CURDIR/OpenAFS.pkg
     if [ $majorvers -ge 7 ]; then
-	echo $package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
+	echo $PACKAGEMAKER -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
 	    -i OpenAFS.Info.plist -d OpenAFS.Description.plist
-	$package -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
+	"$PACKAGEMAKER" -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \
 	    -i OpenAFS.Info.plist -d OpenAFS.Description.plist
     else
-	echo $package $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES
-	(cd $CURDIR && $package $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES)
+	echo $PACKAGEMAKER $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES
+	(cd $CURDIR && "$PACKAGEMAKER" $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES)
 	#old versions of package didn't handle this properly
 	if [ ! -r $CURDIR/OpenAFS.pkg/Contents ]; then
 		mkdir -p $CURDIR/OpenAFS.pkg/Contents/Resources
diff --git a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.h b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.h
index c4799c6..371ac82 100644
--- a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.h
+++ b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.h
@@ -65,7 +65,6 @@
 - (NSImage*)getImageFromBundle:(NSString*)fileName fileExt:(NSString*)ext;
 - (NSImage*)imageToRender;
 - (void)menuNeedsUpdate:(NSMenu *)menu;
-- (void)repairHelperTool;
 - (void) afsVolumeMountChange:(NSNotification *)notification;
 - (void) updateLinkModeStatusWithpreferenceStatus:(BOOL)status;
 -(NSStatusItem*)statusItem;
diff --git a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.m b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.m
index 94bef26..d2d81fa 100644
--- a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.m
+++ b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSBackgrounderDelegate.m
@@ -335,22 +335,26 @@
 - (void)startStopAfs:(id)sender
 {
 	@try {
-		BOOL currentAfsState = NO;
+	    BOOL currentAfsState = NO;
+	    OSErr status = [[AuthUtil shared] autorize];
+	    if(status == noErr){
 		currentAfsState = [afsMngr checkAfsStatus];
 		// make the parameter to call the root helper app
 		if(currentAfsState){
-			//shutdown afs
-			NSLog(@"Shutting down afs");
-			[afsMngr shutdown];
+		    //shutdown afs
+		    NSLog(@"Shutting down afs");
+		    [afsMngr shutdown];
 		} else {
-			//Start afs
-			NSLog(@"Starting up afs");
-			[afsMngr startup];
+		    //Start afs
+		    NSLog(@"Starting up afs");
+		    [afsMngr startup];
 		}
+	    }
 	}@catch (NSException * e) {
 		NSLog(@"error %@", [e reason]);
 	}@finally {
 		[self updateAfsStatus:nil];
+		[[AuthUtil shared] deautorize];
 		//Send notification to preferencepane
 		[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAfsCommanderID object:kMenuExtraEventOccured];
 	}
@@ -525,53 +529,6 @@
 	else return NSOffState;
 }
 
-// -------------------------------------------------------------------------------
-//  repairHelperTool:
-// -------------------------------------------------------------------------------
-- (void) repairHelperTool
-{
-	struct stat st;
-    int fdTool;
-	int status = 0; 
-	NSString *afshlpPath = [[NSBundle mainBundle] pathForResource:@"afshlp" ofType:nil];
-	
-	
-    
-    // Open tool exclusively, so nobody can change it while we bless it.
-    fdTool = open([afshlpPath UTF8String], O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
-    
-    if(fdTool == -1)
-    {
-        NSLog(@"Exclusive open while repairing tool failed: %d.", errno);
-        exit(-1);
-    }
-    
-    if(fstat(fdTool, &st))
-    {
-        NSLog(@"fstat failed.");
-        exit(-1);
-    }
-    
-    if(st.st_uid != 0)
-    {
-		status = [[AuthUtil shared] autorize];
-		if(status == noErr){
-			fchown(fdTool, 0, st.st_gid);
-			
-			// Disable group and world writability and make setuid root.
-			fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH)))/* | S_ISUID*/);
-			const char *args[] = {"root", [afshlpPath UTF8String],0L};
-			[[AuthUtil shared] execUnixCommand:"/usr/sbin/chown" 
-										  args:args
-										output:nil];
-			[[AuthUtil shared] deautorize];
-		}
-    } else  NSLog(@"st_uid = 0");
-    close(fdTool);
-    NSLog(@"Self-repair done.");
-	
-}
-
 #pragma mark accessor
 // -------------------------------------------------------------------------------
 //  statusItem
diff --git a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.h b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.h
index 1c41e24..54487b3 100644
--- a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.h
+++ b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.h
@@ -52,6 +52,5 @@
 - (NSImage*)getImageFromBundle:(NSString*)fileName fileExt:(NSString*)ext;
 - (NSImage*)imageToRender;
 - (void)updateMenu;
-- (void)repairHelperTool;
 - (void) afsVolumeMountChange:(NSNotification *)notification;
 @end
diff --git a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.m b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.m
index 0073a31..3816862 100644
--- a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.m
+++ b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtra.m
@@ -177,62 +177,6 @@
 }
 
 // -------------------------------------------------------------------------------
-//  -(void) readPreferenceFile
-// -------------------------------------------------------------------------------
-- (void)startStopAfs:(id)sender
-{
-	if(!afsSysPath) return;
-	
-	OSStatus status = noErr;
-	NSString *afsdPath = [TaskUtil searchExecutablePath:@"afsd"];
-	NSString *rootHelperApp = nil;
-	BOOL currentAfsState = NO;
-	
-	@try {
-		if(afsdPath == nil) return;
-		AFSPropertyManager *afsMngr = [[AFSPropertyManager alloc] initWithAfsPath:afsSysPath];
-		currentAfsState = [afsMngr checkAfsStatus];
-		[afsMngr release];
-		
-		rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
-
-		//Check helper app
-		[self repairHelperTool];
-		
-		// make the parameter to call the root helper app
-		status = [[AuthUtil shared] autorize];
-		if(status == noErr){
-			if(currentAfsState){
-				//shutdown afs
-				NSMutableString *afsKextPath = [[NSMutableString alloc] initWithCapacity:256];
-				[afsKextPath setString:afsSysPath];
-				[afsKextPath appendString:@"/etc/afs.kext"];
-				
-				const char *stopAfsArgs[] = {"stop_afs", [afsKextPath  UTF8String], [afsdPath UTF8String], 0L};
-				[[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
-											  args:stopAfsArgs
-											output:nil];
-			} else {
-				const char *startAfsArgs[] = {[[[self bundle] pathForResource:@"start_afs" ofType:@"sh"]  UTF8String], [afsSysPath UTF8String], [afsdPath UTF8String], 0L};
-				[[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
-											  args:startAfsArgs
-											output:nil];
-			}
-		}
-	}
-	@catch (NSException * e) {
-		NSLog([e reason]);
-	}
-	@finally {
-		[[AuthUtil shared] deautorize];
-		[self updateAfsStatus:nil];
-		//Send notification to preferencepane
-		[[NSDistributedNotificationCenter defaultCenter] postNotificationName:afsCommanderID object:kMenuExtraEventOccured];
-	}
-	
-}
-
-// -------------------------------------------------------------------------------
 //  -(void) getToken
 // -------------------------------------------------------------------------------
 - (void)getToken:(id)sender
@@ -368,53 +312,4 @@
 	if(useAklogPrefValue) return [useAklogPrefValue intValue] == NSOnState; 
 	else return NSOffState;
 }
-
-// -------------------------------------------------------------------------------
-//  repairHelperTool:
-// -------------------------------------------------------------------------------
-- (void) repairHelperTool
-{
-	struct stat st;
-    int fdTool;
-	int status = 0; 
-	NSString *afshlpPath = [[self bundle] pathForResource:@"afshlp" ofType:nil];
-	
-	
-    
-    // Open tool exclusively, so nobody can change it while we bless it.
-    fdTool = open([afshlpPath UTF8String], O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
-    
-    if(fdTool == -1)
-    {
-        NSLog(@"Exclusive open while repairing tool failed: %d.", errno);
-        exit(-1);
-    }
-    
-    if(fstat(fdTool, &st))
-    {
-        NSLog(@"fstat failed.");
-        exit(-1);
-    }
-    
-    if(st.st_uid != 0)
-    {
-		status = [[AuthUtil shared] autorize];
-		if(status == noErr){
-			fchown(fdTool, 0, st.st_gid);
-			
-			// Disable group and world writability and make setuid root.
-			fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH)))/* | S_ISUID*/);
-			const char *args[] = {"root", [afshlpPath UTF8String],0L};
-			[[AuthUtil shared] execUnixCommand:"/usr/sbin/chown" 
-										  args:args
-										output:nil];
-			[[AuthUtil shared] deautorize];
-		}
-    } else  NSLog(@"st_uid = 0");
-    
-	
-    
-    close(fdTool);
-    NSLog(@"Self-repair done.");
-	
-}@end
+@end
diff --git a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtraView.h b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtraView.h
index 915dc2f..6d1ce18 100644
--- a/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtraView.h
+++ b/src/platform/DARWIN/AFSPreference/AFSBackgrounder/AFSMenuExtraView.h
@@ -9,7 +9,7 @@
 #import <Cocoa/Cocoa.h>
 #import "AFSBackgrounderDelegate.h"
 
-@interface AFSMenuExtraView : NSView {
+@interface AFSMenuExtraView : NSView <NSMenuDelegate> {
 	AFSBackgrounderDelegate 	*backgrounderDelegator;
 	NSStatusItem 	*statusItem;
 	NSMenu	*statusItemMenu;
diff --git a/src/platform/DARWIN/AFSPreference/AFSCommanderPref.h b/src/platform/DARWIN/AFSPreference/AFSCommanderPref.h
index a9f1cad..7666255 100644
--- a/src/platform/DARWIN/AFSPreference/AFSCommanderPref.h
+++ b/src/platform/DARWIN/AFSPreference/AFSCommanderPref.h
@@ -7,6 +7,7 @@
 //
 
 #import <PreferencePanes/PreferencePanes.h>
+#import <SecurityInterface/SFAuthorizationView.h>
 #import "AFSPropertyManager.h"
 #import "global.h"
 #import "ViewUtility.h"
@@ -20,12 +21,13 @@ int CoreMenuExtraRemoveMenuExtra(void *menuExtra, int whoCares);
 
 
 
-@interface AFSCommanderPref : NSPreferencePane 
+@interface AFSCommanderPref : NSPreferencePane <NSTableViewDataSource, NSTableViewDelegate>
 {
 	//for check system version
 	int prefStartUp;
 	// Main View
 	BOOL startAFSAtLogin;
+    IBOutlet SFAuthorizationView *authView;
 	IBOutlet NSView *afsCommanderView;
 	IBOutlet NSSearchField *textSearchField;
 	IBOutlet NSTextField *afsDefaultCellLabel;
@@ -104,6 +106,7 @@ int CoreMenuExtraRemoveMenuExtra(void *menuExtra, int whoCares);
 	NSLock *tokensLock;
 }
 
+- (BOOL)isUnlocked;
 - (void) mainViewDidLoad;
 - (void) willUnselect;
 - (void) didSelect;
@@ -144,11 +147,8 @@ int CoreMenuExtraRemoveMenuExtra(void *menuExtra, int whoCares);
 - (void) modifyCell:(DBCellElement*) cellElement;
 - (void) modifyCellByIDX:(int) idx;
 - (void) showMessage:(NSString*) message;
-- (void) tableViewCellmanageButtonState:(int) rowSelected;
-- (void) tableViewLinkmanageButtonState:(NSIndexSet *) rowsSelectedIndex;
 - (void) setAfsStatus;
 - (void) refreshTokens:(NSTimer*)theTimer;
-- (void) repairHelperTool;
 - (void) writePreferenceFile;
 - (void) readPreferenceFile;
 - (void) refreshGui:(NSNotification *)notification;
@@ -157,8 +157,13 @@ int CoreMenuExtraRemoveMenuExtra(void *menuExtra, int whoCares);
 - (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem;
 @end
 
+@interface AFSCommanderPref (TableDelegate)
+- (void) tableViewCellmanageButtonState:(int) rowSelected;
+- (void) tableViewLinkmanageButtonState:(NSIndexSet *) rowsSelectedIndex;
+@end;
+
 @interface AFSCommanderPref (NSTableDataSource)
 - (id) getTableTokensListValue:(int) colId row:(int)row;
 - (id) getTableCelListValue:(int) colId row:(int)row;
 - (id) getTableLinkValue:(int) colId row:(int)row;
-@end;
\ No newline at end of file
+@end;
diff --git a/src/platform/DARWIN/AFSPreference/AFSCommanderPref.m b/src/platform/DARWIN/AFSPreference/AFSCommanderPref.m
index dcc7344..dd6d9bf 100644
--- a/src/platform/DARWIN/AFSPreference/AFSCommanderPref.m
+++ b/src/platform/DARWIN/AFSPreference/AFSCommanderPref.m
@@ -58,7 +58,7 @@
 {
     if ( ( self = [super initWithBundle:bundle] ) != nil ) {
         //appID = kAfsCommanderID;
-		prefStartUp = 1;
+	prefStartUp = 1;
     }
     return self;
 }
@@ -67,16 +67,16 @@
 //  mainView:
 // -------------------------------------------------------------------------------
 - (NSView *) mainView {
-	if (prefStartUp == 1){
-		SInt32 osxMJVers = 0;
-		SInt32 osxMnVers = 0;
-		if (Gestalt(gestaltSystemVersionMajor, &osxMJVers) == noErr && Gestalt(gestaltSystemVersionMinor, &osxMnVers) == noErr) {
-			if (osxMJVers == 10 && osxMnVers>= 5) {
-				[afsCommanderView  setFrameSize:NSMakeSize(668, [afsCommanderView frame].size.height)];
+    if (prefStartUp == 1){
+	SInt32 osxMJVers = 0;
+	SInt32 osxMnVers = 0;
+	if (Gestalt(gestaltSystemVersionMajor, &osxMJVers) == noErr && Gestalt(gestaltSystemVersionMinor, &osxMnVers) == noErr) {
+	    if (osxMJVers == 10 && osxMnVers>= 5) {
+		[afsCommanderView  setFrameSize:NSMakeSize(668, [afsCommanderView frame].size.height)];
                 prefStartUp = 0;
-			}
-		}
+	    }
 	}
+    }
 	
     return afsCommanderView;
 }
@@ -86,12 +86,17 @@
 // -------------------------------------------------------------------------------
 - (void) mainViewDidLoad
 {
-	//CellServDB Table
-	[((NSTableView*)cellList) setDelegate:self];
-	[((NSTableView*)cellList) setTarget:self];
-	[((NSTableView*)cellList) setDoubleAction:@selector(tableDoubleAction:)];
-	
-	
+    //CellServDB Table
+    [cellList setDelegate:self];
+    [cellList setTarget:self];
+    [cellList setDoubleAction:@selector(tableDoubleAction:)];
+
+    // Setup security.
+    AuthorizationItem items = {kAuthorizationRightExecute, 0, NULL, 0};
+    AuthorizationRights rights = {1, &items};
+    [authView setAuthorizationRights:&rights];
+    authView.delegate = self;
+    [authView updateStatus:nil];
 }
 
 // -------------------------------------------------------------------------------
@@ -99,102 +104,102 @@
 // -------------------------------------------------------------------------------
 - (void) didSelect
 {
-	//try to install the launchd file for backgrounder
-	//Remove launchd ctrl file
-	@try {
-		[PListManager installBackgrounderLaunchdFile:YES 
-										resourcePath:[[self bundle] resourcePath]];
-	}
-	@catch (NSException * e) {
-		NSDictionary *excecptDic = [e userInfo];
-		NSNumber *keyNum = [excecptDic objectForKey:@"agent_folder_error"];
-		if(keyNum && [keyNum boolValue]) {
-			// the dir HOME_LAUNCHD_AGENT_FOLDER (PListManager.h) must be created
-			NSBeginAlertSheet([[NSString stringWithString:kDoYouWantCreateTheDirectory] stringByAppendingString:HOME_LAUNCHD_AGENT_FOLDER],
-							  @"Create", @"Cancel", nil,										
-							  [[self mainView] window],	self, @selector(credentialAtLoginTimeEventCreationLaunchAgentDir:returnCode:contextInfo:), NULL, 
-							  nil, @"", nil);
-		}
-	}
-	@finally {
-		
+    //try to install the launchd file for backgrounder
+    //Remove launchd ctrl file
+    @try {
+	[PListManager installBackgrounderLaunchdFile:YES
+		      resourcePath:[[self bundle] resourcePath]];
+    }
+    @catch (NSException * e) {
+	NSDictionary *excecptDic = [e userInfo];
+	NSNumber *keyNum = [excecptDic objectForKey:@"agent_folder_error"];
+	if(keyNum && [keyNum boolValue]) {
+	    // the dir HOME_LAUNCHD_AGENT_FOLDER (PListManager.h) must be created
+	    NSBeginAlertSheet([[NSString stringWithString:kDoYouWantCreateTheDirectory] stringByAppendingString:HOME_LAUNCHD_AGENT_FOLDER],
+			      @"Create", @"Cancel", nil,
+			      [[self mainView] window],	self, @selector(credentialAtLoginTimeEventCreationLaunchAgentDir:returnCode:contextInfo:), NULL,
+			      nil, @"", nil);
 	}
+    }
+    @finally {
 	
-	
-	// Set Developer info
-	[textFieldDevInfoLabel setStringValue:kDevelopInfo];
-	// creating the lock
-	tokensLock = [[NSLock alloc] init];
-	
-	//Initialization cellservdb and token list
-	filteredCellDB = nil;
-	tokenList = nil;
-	
-	[self readPreferenceFile];
-			
-	// alloc the afs property mananger
-	afsProperty = [[AFSPropertyManager alloc] init];
-	
-	// register preference pane to detect menuextra killed by user
-	[[NSDistributedNotificationCenter defaultCenter] addObserver:self
-														selector:@selector(refreshTokensNotify:)
-															name:kAfsCommanderID
-														  object:kMExtraTokenOperation];
-	 
-	[[NSDistributedNotificationCenter defaultCenter] addObserver:self 
-														selector:@selector(refreshGui:) 
-															name:kAfsCommanderID 
-														  object:kMenuExtraEventOccured];
-	
-	//Register for mount/unmount afs volume
-	[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self 
-														   selector:@selector(afsVolumeMountChange:) 
-															   name:NSWorkspaceDidMountNotification object:nil];
-	
-	[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self 
-														   selector:@selector(afsVolumeMountChange:) 
-															   name:NSWorkspaceDidUnmountNotification object:nil];
-	
-	// set self as table data source
-	[cellList setDataSource:self];
-	[tokensTable setDataSource:self];
-	//[tableViewLink setDataSource:self];
-	//check the afs state
-	[self setAfsStatus];
-	
-	// let show the configuration after prefpane is open
-	[self refreshConfiguration:nil];
-	
-	// refresh the token list
-	//[self refreshTokens:nil];
-	
-	//refresh table to reflect the NSSearchField contained text
-	[self searchCellTextEvent:nil];
+    }
+
+
+    // Set Developer info
+    [textFieldDevInfoLabel setStringValue:kDevelopInfo];
+    // creating the lock
+    tokensLock = [[NSLock alloc] init];
+
+    //Initialization cellservdb and token list
+    filteredCellDB = nil;
+    tokenList = nil;
+
+    [self readPreferenceFile];
+
+    // alloc the afs property mananger
+    afsProperty = [[AFSPropertyManager alloc] init];
+
+    // register preference pane to detect menuextra killed by user
+    [[NSDistributedNotificationCenter defaultCenter] addObserver:self
+						     selector:@selector(refreshTokensNotify:)
+						     name:kAfsCommanderID
+						     object:kMExtraTokenOperation];
+
+    [[NSDistributedNotificationCenter defaultCenter] addObserver:self
+						     selector:@selector(refreshGui:)
+						     name:kAfsCommanderID
+						     object:kMenuExtraEventOccured];
+
+    //Register for mount/unmount afs volume
+    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
+							selector:@selector(afsVolumeMountChange:)
+							name:NSWorkspaceDidMountNotification object:nil];
+
+    [[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self
+							selector:@selector(afsVolumeMountChange:)
+							name:NSWorkspaceDidUnmountNotification object:nil];
+
+    // set self as table data source
+    [cellList setDataSource:self];
+    [tokensTable setDataSource:self];
+    //[tableViewLink setDataSource:self];
+    //check the afs state
+    [self setAfsStatus];
+
+    // let show the configuration after prefpane is open
+    [self refreshConfiguration:nil];
+
+    // refresh the token list
+    //[self refreshTokens:nil];
+
+    //refresh table to reflect the NSSearchField contained text
+    [self searchCellTextEvent:nil];
 }
 
 // -------------------------------------------------------------------------------
 //  credentialAtLoginTimeEventCreationLaunchAgentDir:
 // -------------------------------------------------------------------------------
 - (void) credentialAtLoginTimeEventCreationLaunchAgentDir:(NSWindow*)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo {
-	[alert close];
-	switch (returnCode) {
-		case  1:
-			if([[NSFileManager defaultManager] createDirectoryAtPath:[HOME_LAUNCHD_AGENT_FOLDER stringByExpandingTildeInPath] 
-										 withIntermediateDirectories:NO
-														  attributes:nil
-															   error:nil]) {
-				
-				//Create the file
-				[PListManager installBackgrounderLaunchdFile:YES
-												resourcePath:[[self bundle] resourcePath]];
-				[self showMessage:kDirectoryCreated];
-			} else {
-				[self showMessage:kErrorCreatingDirectory];
-			}
-			break;
-		case 0:
-			break;
+    [alert close];
+    switch (returnCode) {
+    case  1:
+	if([[NSFileManager defaultManager] createDirectoryAtPath:[HOME_LAUNCHD_AGENT_FOLDER stringByExpandingTildeInPath]
+					   withIntermediateDirectories:NO
+					   attributes:nil
+					   error:nil]) {
+
+	    //Create the file
+	    [PListManager installBackgrounderLaunchdFile:YES
+			  resourcePath:[[self bundle] resourcePath]];
+	    [self showMessage:kDirectoryCreated];
+	} else {
+	    [self showMessage:kErrorCreatingDirectory];
 	}
+	break;
+    case 0:
+	break;
+    }
 }
 
 
@@ -203,36 +208,36 @@
 // -------------------------------------------------------------------------------
 - (void)willUnselect
 {
-	// remove self as datasource
-	[((NSTableView*)cellList) setDataSource:nil];
-	[((NSTableView*)tokensTable) setDataSource:nil];
-
-	//release the afs property manager
-	if(afsProperty) [afsProperty release];
-	//release tokens list
-	if(tokenList) [tokenList release];	
-	//Remove the cell temp array
-	if(filteredCellDB) [filteredCellDB release];
-	
-	[self writePreferenceFile];
-	
-	// unregister preference pane to detect menuextra killed by user
-	[[NSDistributedNotificationCenter defaultCenter] removeObserver:self
-															   name:kAfsCommanderID
-															 object:kMExtraClosedNotification];
-	[[NSDistributedNotificationCenter defaultCenter] removeObserver:self
-															   name:kAfsCommanderID
-															 object:kMExtraTokenOperation];
-	[[NSDistributedNotificationCenter defaultCenter] removeObserver:self
-															   name:kAfsCommanderID
-															 object:kMenuExtraEventOccured];
-	[[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self 
-																  name:NSWorkspaceDidMountNotification object:nil];
-	[[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self 
-																  name:NSWorkspaceDidUnmountNotification object:nil];
-	
-	[self stopTimer];
-	[tokensLock release];
+    // remove self as datasource
+    [cellList setDataSource:nil];
+    [tokensTable setDataSource:nil];
+
+    //release the afs property manager
+    if(afsProperty) [afsProperty release];
+    //release tokens list
+    if(tokenList) [tokenList release];
+    //Remove the cell temp array
+    if(filteredCellDB) [filteredCellDB release];
+
+    [self writePreferenceFile];
+
+    // unregister preference pane to detect menuextra killed by user
+    [[NSDistributedNotificationCenter defaultCenter] removeObserver:self
+						     name:kAfsCommanderID
+						     object:kMExtraClosedNotification];
+    [[NSDistributedNotificationCenter defaultCenter] removeObserver:self
+						     name:kAfsCommanderID
+						     object:kMExtraTokenOperation];
+    [[NSDistributedNotificationCenter defaultCenter] removeObserver:self
+						     name:kAfsCommanderID
+						     object:kMenuExtraEventOccured];
+    [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self
+							name:NSWorkspaceDidMountNotification object:nil];
+    [[[NSWorkspace sharedWorkspace] notificationCenter] removeObserver:self
+							name:NSWorkspaceDidUnmountNotification object:nil];
+
+    [self stopTimer];
+    [tokensLock release];
 }
 
 
@@ -240,23 +245,23 @@
 //  startTimer:
 // -------------------------------------------------------------------------------
 - (void)startTimer{
-	//start the time for check tokens validity
-	if(timerForCheckTokensList) return;
-	timerForCheckTokensList = [NSTimer scheduledTimerWithTimeInterval:TOKENS_REFRESH_TIME_IN_SEC 
-															   target:self 
-															 selector:@selector(refreshTokens:) 
-															 userInfo:nil 
-															  repeats:YES];
-	[timerForCheckTokensList fire];	
+    //start the time for check tokens validity
+    if(timerForCheckTokensList) return;
+    timerForCheckTokensList = [NSTimer scheduledTimerWithTimeInterval:TOKENS_REFRESH_TIME_IN_SEC
+				       target:self
+				       selector:@selector(refreshTokens:)
+				       userInfo:nil
+				       repeats:YES];
+    [timerForCheckTokensList fire];
 }
 
 // -------------------------------------------------------------------------------
 //  stopTimer:
 // -------------------------------------------------------------------------------
 - (void)stopTimer{
-	if(!timerForCheckTokensList) return;
-	[timerForCheckTokensList invalidate];	
-	timerForCheckTokensList = nil;
+    if(!timerForCheckTokensList) return;
+    [timerForCheckTokensList invalidate];
+    timerForCheckTokensList = nil;
 }
 
 
@@ -265,73 +270,72 @@
 // -------------------------------------------------------------------------------
 - (void) readPreferenceFile
 {
-	// read the preference for aklog use
-	NSNumber *useAklogPrefValue = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_AKLOG, (CFStringRef)kAfsCommanderID,  
-																	kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	NSNumber *aklogTokenAtLogin = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN, (CFStringRef)kAfsCommanderID,  
-																	kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	[useAklogCheck setState:[useAklogPrefValue intValue]];
-	[aklogCredentialAtLoginTime setEnabled:useAklogPrefValue && [useAklogPrefValue boolValue]];
-	[aklogCredentialAtLoginTime setState:aklogTokenAtLogin && [aklogTokenAtLogin boolValue]];
-
-	//check krb5 at login time
-	[installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
-
-	//check for AFS enable at startup
-	NSNumber *afsEnableStartupTime = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP,
-																	   (CFStringRef)kAfsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
-	if(afsEnableStartupTime)
-		startAFSAtLogin = [afsEnableStartupTime boolValue];
-	else 
-		startAFSAtLogin = false;
-	//set the check button state
-	[checkButtonAfsAtBootTime setState:startAFSAtLogin];
-	
-	NSNumber *showStatusMenu =  (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	[(NSButton*)afsMenucheckBox setState: [showStatusMenu boolValue]];
-	
-	//backgrounder state
-	[backgrounderActivationCheck setState:[PListManager launchdJobState:BACKGROUNDER_P_FILE]];
-	
-	//link enabled status
-	NSNumber *linkEnabledStatus =  (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_LINK,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	[checkEnableLink setState:[linkEnabledStatus boolValue]];
-	
-	//check the user preference for manage the renew
-	NSNumber *checkRenew =  (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_CHECK_ENABLE,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	if(checkRenew)[nsButtonEnableDisableKrb5RenewCheck setState:[checkRenew intValue]];
-
-	NSNumber *renewTime = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_RENEW_TIME,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	if(!renewTime) renewTime = [NSNumber numberWithInt:PREFERENCE_KRB5_RENEW_TIME_DEFAULT_VALUE];
-
-		//update gui
-	NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
-	NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit) 
-													   fromDate:[NSDate dateWithTimeIntervalSince1970:[renewTime intValue]]];
-	[nsTextFieldKrb5RenewTimeD setIntValue:[weekdayComponents day]-1];
-	[nsTextFieldKrb5RenewTimeH setIntValue:[weekdayComponents hour]-1];
-	[nsTextFieldKrb5RenewTimeM setIntValue:[weekdayComponents minute]];
-	[nsTextFieldKrb5RenewTimeS setIntValue:[weekdayComponents second]];
-	[nsStepperKrb5RenewTimeD setIntValue:[weekdayComponents day]-1];
-	[nsStepperKrb5RenewTimeH setIntValue:[weekdayComponents hour]-1];
-	[nsStepperKrb5RenewTimeM setIntValue:[weekdayComponents minute]];
-	[nsStepperKrb5RenewTimeS setIntValue:[weekdayComponents second]];
-
-	NSNumber *renewCheckTimeInterval = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_RENEW_CHECK_TIME_INTERVALL,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	if(renewCheckTimeInterval && [renewCheckTimeInterval intValue])[nsTextFieldKrb5RenewCheckIntervall setIntValue:[renewCheckTimeInterval intValue]];
-	else [nsTextFieldKrb5RenewCheckIntervall setIntValue:PREFERENCE_KRB5_RENEW_CHECK_TIME_INTERVALL_DEFAULT_VALUE];
-
-	NSNumber *expireTimeForRenew = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_SEC_TO_EXPIRE_TIME_FOR_RENEW,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	if(expireTimeForRenew && [expireTimeForRenew intValue])[nsTextFieldKrb5SecToExpireDateForRenew setIntValue:[expireTimeForRenew intValue]];
-	else [nsTextFieldKrb5SecToExpireDateForRenew setIntValue:PREFERENCE_KRB5_SEC_TO_EXPIRE_TIME_FOR_RENEW_DEFAULT_VALUE];
-
-	//link configuration
-	NSData *prefData = (NSData*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_LINK_CONFIGURATION,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	linkConfiguration = (NSMutableDictionary*)[NSPropertyListSerialization propertyListFromData:prefData
-																			   mutabilityOption:NSPropertyListMutableContainers
-																						 format:nil
-																			   errorDescription:nil];
-	
+    // read the preference for aklog use
+    NSNumber *useAklogPrefValue = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_AKLOG, (CFStringRef)kAfsCommanderID,
+								    kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    NSNumber *aklogTokenAtLogin = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN, (CFStringRef)kAfsCommanderID,
+								    kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    [useAklogCheck setState:[useAklogPrefValue intValue]];
+    [aklogCredentialAtLoginTime setEnabled:useAklogPrefValue && [useAklogPrefValue boolValue]];
+    [aklogCredentialAtLoginTime setState:aklogTokenAtLogin && [aklogTokenAtLogin boolValue]];
+
+    //check krb5 at login time
+    [installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
+
+    //check for AFS enable at startup
+    NSNumber *afsEnableStartupTime = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP,
+								       (CFStringRef)kAfsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+    if(afsEnableStartupTime)
+	startAFSAtLogin = [afsEnableStartupTime boolValue];
+    else
+	startAFSAtLogin = false;
+    //set the check button state
+    [checkButtonAfsAtBootTime setState:startAFSAtLogin];
+
+    NSNumber *showStatusMenu =  (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    [(NSButton*)afsMenucheckBox setState: [showStatusMenu boolValue]];
+
+    //backgrounder state
+    [backgrounderActivationCheck setState:[PListManager launchdJobState:BACKGROUNDER_P_FILE]];
+
+    //link enabled status
+    NSNumber *linkEnabledStatus =  (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_USE_LINK,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    [checkEnableLink setState:[linkEnabledStatus boolValue]];
+
+    //check the user preference for manage the renew
+    NSNumber *checkRenew =  (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_CHECK_ENABLE,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    if(checkRenew)[nsButtonEnableDisableKrb5RenewCheck setState:[checkRenew intValue]];
+
+    NSNumber *renewTime = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_RENEW_TIME,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    if(!renewTime) renewTime = [NSNumber numberWithInt:PREFERENCE_KRB5_RENEW_TIME_DEFAULT_VALUE];
+
+    //update gui
+    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
+    NSDateComponents *weekdayComponents = [gregorian components:(NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit)
+						     fromDate:[NSDate dateWithTimeIntervalSince1970:[renewTime intValue]]];
+    [nsTextFieldKrb5RenewTimeD setIntValue:[weekdayComponents day]-1];
+    [nsTextFieldKrb5RenewTimeH setIntValue:[weekdayComponents hour]-1];
+    [nsTextFieldKrb5RenewTimeM setIntValue:[weekdayComponents minute]];
+    [nsTextFieldKrb5RenewTimeS setIntValue:[weekdayComponents second]];
+    [nsStepperKrb5RenewTimeD setIntValue:[weekdayComponents day]-1];
+    [nsStepperKrb5RenewTimeH setIntValue:[weekdayComponents hour]-1];
+    [nsStepperKrb5RenewTimeM setIntValue:[weekdayComponents minute]];
+    [nsStepperKrb5RenewTimeS setIntValue:[weekdayComponents second]];
+
+    NSNumber *renewCheckTimeInterval = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_RENEW_CHECK_TIME_INTERVALL,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    if(renewCheckTimeInterval && [renewCheckTimeInterval intValue])[nsTextFieldKrb5RenewCheckIntervall setIntValue:[renewCheckTimeInterval intValue]];
+    else [nsTextFieldKrb5RenewCheckIntervall setIntValue:PREFERENCE_KRB5_RENEW_CHECK_TIME_INTERVALL_DEFAULT_VALUE];
+
+    NSNumber *expireTimeForRenew = (NSNumber*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_KRB5_SEC_TO_EXPIRE_TIME_FOR_RENEW,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    if(expireTimeForRenew && [expireTimeForRenew intValue])[nsTextFieldKrb5SecToExpireDateForRenew setIntValue:[expireTimeForRenew intValue]];
+    else [nsTextFieldKrb5SecToExpireDateForRenew setIntValue:PREFERENCE_KRB5_SEC_TO_EXPIRE_TIME_FOR_RENEW_DEFAULT_VALUE];
+
+    //link configuration
+    NSData *prefData = (NSData*)CFPreferencesCopyValue((CFStringRef)PREFERENCE_LINK_CONFIGURATION,  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    linkConfiguration = (NSMutableDictionary*)[NSPropertyListSerialization propertyListFromData:prefData
+									   mutabilityOption:NSPropertyListMutableContainers
+									   format:nil
+									   errorDescription:nil];
 }
 
 // -------------------------------------------------------------------------------
@@ -339,56 +343,56 @@
 // -------------------------------------------------------------------------------
 - (void) writePreferenceFile
 {
-	//Set the preference for afs path
-	//Set the preference for aklog use
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_USE_AKLOG, 
-						  (CFNumberRef)[NSNumber numberWithInt:[useAklogCheck state]], 
-						  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-
-	//set AFS enable state at startup
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP, 
-						  (CFNumberRef)[NSNumber numberWithBool:startAFSAtLogin], 
-						  (CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
-	
-	//set aklog at login
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN, 
-						  (CFNumberRef)[NSNumber numberWithBool:[aklogCredentialAtLoginTime state]], 
-						  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-	//set aklog at login
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU, 
-						  (CFNumberRef)[NSNumber numberWithBool:[(NSButton*)afsMenucheckBox state]],
-						  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-	//preference for link
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_USE_LINK,
-						  (CFNumberRef)[NSNumber numberWithBool:[checkEnableLink state]], 
-						  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-		//preference for renew time
-	NSLog(@"%d %d %d %d", [nsTextFieldKrb5RenewTimeD intValue],[nsTextFieldKrb5RenewTimeH intValue],[nsTextFieldKrb5RenewTimeM intValue],[nsTextFieldKrb5RenewTimeS intValue]);
-	NSInteger totalSeconds =	([nsTextFieldKrb5RenewTimeD intValue]*24*60*60)+
-								([nsTextFieldKrb5RenewTimeH intValue]*60*60)+
-								([nsTextFieldKrb5RenewTimeM intValue]*60)+
-								[nsTextFieldKrb5RenewTimeS intValue];
-
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_RENEW_TIME,
-						  (CFNumberRef)[NSNumber numberWithInt:totalSeconds],
-						  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-
-		//expire time for renew
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_SEC_TO_EXPIRE_TIME_FOR_RENEW,
-						  (CFNumberRef)[NSNumber numberWithInt:[nsTextFieldKrb5SecToExpireDateForRenew intValue]],
-						  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-
-		//sec to expiretime for renew job
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_RENEW_CHECK_TIME_INTERVALL,
-						  (CFNumberRef)[NSNumber numberWithInt:[nsTextFieldKrb5RenewCheckIntervall intValue]],
-						  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-
-	CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
-	CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kPrefChangeNotification];
+    //Set the preference for afs path
+    //Set the preference for aklog use
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_USE_AKLOG,
+			  (CFNumberRef)[NSNumber numberWithInt:[useAklogCheck state]],
+			  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //set AFS enable state at startup
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_START_AFS_AT_STARTUP,
+			  (CFNumberRef)[NSNumber numberWithBool:startAFSAtLogin],
+			  (CFStringRef)kAfsCommanderID, kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+
+    //set aklog at login
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_AKLOG_TOKEN_AT_LOGIN,
+			  (CFNumberRef)[NSNumber numberWithBool:[aklogCredentialAtLoginTime state]],
+			  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //set aklog at login
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU,
+			  (CFNumberRef)[NSNumber numberWithBool:[(NSButton*)afsMenucheckBox state]],
+			  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //preference for link
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_USE_LINK,
+			  (CFNumberRef)[NSNumber numberWithBool:[checkEnableLink state]],
+			  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //preference for renew time
+    //NSLog(@"%d %d %d %d", [nsTextFieldKrb5RenewTimeD intValue],[nsTextFieldKrb5RenewTimeH intValue],[nsTextFieldKrb5RenewTimeM intValue],[nsTextFieldKrb5RenewTimeS intValue]);
+    NSInteger totalSeconds =	([nsTextFieldKrb5RenewTimeD intValue]*24*60*60)+
+	([nsTextFieldKrb5RenewTimeH intValue]*60*60)+
+	([nsTextFieldKrb5RenewTimeM intValue]*60)+
+	[nsTextFieldKrb5RenewTimeS intValue];
+
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_RENEW_TIME,
+			  (CFNumberRef)[NSNumber numberWithInt:totalSeconds],
+			  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //expire time for renew
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_SEC_TO_EXPIRE_TIME_FOR_RENEW,
+			  (CFNumberRef)[NSNumber numberWithInt:[nsTextFieldKrb5SecToExpireDateForRenew intValue]],
+			  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //sec to expiretime for renew job
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_RENEW_CHECK_TIME_INTERVALL,
+			  (CFNumberRef)[NSNumber numberWithInt:[nsTextFieldKrb5RenewCheckIntervall intValue]],
+			  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+    CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kPrefChangeNotification];
 }
 
 // -------------------------------------------------------------------------------
@@ -396,29 +400,25 @@
 // -------------------------------------------------------------------------------
 - (IBAction) saveConfiguration:(id) sender
 {
-	@try{
-		
-		//[afsProperty setCellName:[cellNameTextEdit stringValue]];
-		[afsProperty setCellName:[afsProperty getDefaultCellName]];
-		
-		//save configurations
-		[afsProperty saveConfigurationFiles:YES];
-		
-		
-		//Reload all configuration
-		[self refreshConfiguration:nil];
-		
-		//refresh table to reflect the NSSearchField contained text
-		[self searchCellTextEvent:nil];
+    @try{
+	[afsProperty setCellName:[afsProperty getDefaultCellName]];
+
+	//save configurations
+	[afsProperty saveConfigurationFiles:YES];
 		
-		//Show dialog for notifity al saving process ar gone ell
-		[self showMessage:kConfigurationSaved];
-	}@catch(NSException *e){
-		[self showMessage:[e reason]];
-	} @finally {
-		[((NSTableView*)cellList) reloadData];
-	}
+	//Reload all configuration
+	[self refreshConfiguration:nil];
+
+	//refresh table to reflect the NSSearchField contained text
+	[self searchCellTextEvent:nil];
 	
+	//Show dialog for notifity al saving process ar gone ell
+	[self showMessage:kConfigurationSaved];
+    }@catch(NSException *e){
+	[self showMessage:[e reason]];
+    } @finally {
+	[cellList reloadData];
+    }
 }
 
 // -------------------------------------------------------------------------------
@@ -426,16 +426,16 @@
 // -------------------------------------------------------------------------------
 - (IBAction) saveCacheManagerParam:(id) sender
 {
-	@try{
-		//Update the value form view to afs property manager class
-		[self updateCacheParamFromView];
-		[afsProperty saveCacheConfigurationFiles:YES];
-		[self showMessage:kSavedCacheConfiguration];
-	}@catch(NSException *e){
-		[self showMessage:[e reason]];
-	} @finally {
-		[((NSTableView*)cellList) reloadData];
-	}
+    @try{
+	//Update the value form view to afs property manager class
+	[self updateCacheParamFromView];
+	[afsProperty saveCacheConfigurationFiles:YES];
+	[self showMessage:kSavedCacheConfiguration];
+    }@catch(NSException *e){
+	[self showMessage:[e reason]];
+    } @finally {
+	[cellList reloadData];
+    }
 }
 
 // -------------------------------------------------------------------------------
@@ -443,31 +443,31 @@
 // -------------------------------------------------------------------------------
 - (IBAction) refreshConfiguration:(id) sender
 {
-	NSString *afsBasePath = PREFERENCE_AFS_SYS_PAT_STATIC;
-	@try{
-		// set the afs path
-		[afsProperty setPath:afsBasePath];
-		
-		// load configuration
-		[afsProperty loadConfiguration];
-		
-		//set the afs version label
-		[afsVersionLabel setStringValue:[afsProperty getAfsVersion]];
-		
-		//set the current default cell
-		[afsDefaultCellLabel setStringValue:[afsProperty getDefaultCellName]];
-		
-		// Update cache view
-		[self fillCacheParamView];
-		
-		//Filter the cellServDb and allocate filtered array
-		[self filterCellServDB:nil];
-		
-	}@catch(NSException *e){
-		[self showMessage:[e reason]];
-	} @finally {
-		[((NSTableView*)cellList) reloadData];
-	}
+    NSString *afsBasePath = PREFERENCE_AFS_SYS_PAT_STATIC;
+    @try{
+	// set the afs path
+	[afsProperty setPath:afsBasePath];
+
+	// load configuration
+	[afsProperty loadConfiguration];
+
+	//set the afs version label
+	[afsVersionLabel setStringValue:[afsProperty getAfsVersion]];
+
+	//set the current default cell
+	[afsDefaultCellLabel setStringValue:[afsProperty getDefaultCellName]];
+
+	// Update cache view
+	[self fillCacheParamView];
+
+	//Filter the cellServDb and allocate filtered array
+	[self filterCellServDB:nil];
+
+    }@catch(NSException *e){
+	[self showMessage:[e reason]];
+    } @finally {
+	[cellList reloadData];
+    }
 }
 
 // -------------------------------------------------------------------------------
@@ -475,19 +475,19 @@
 // -------------------------------------------------------------------------------
 -(void) fillCacheParamView
 {
-	[dynRoot setState:[afsProperty dynRoot]?NSOnState:NSOffState];
-	[afsDB setState:[afsProperty afsDB]?NSOnState:NSOffState];
-	[statCacheEntry setIntValue:[afsProperty statCacheEntry]];
-	[dCacheDim setIntValue:[afsProperty dCacheDim]];
-	[cacheDimension setIntValue:[afsProperty cacheDimension]];
-	[daemonNumber setIntValue:[afsProperty daemonNumber]];
-	[afsRootMountPoint setStringValue:[afsProperty afsRootMountPoint]];
-	[nVolEntry setIntValue:[afsProperty nVolEntry]];
-	
-	//new version property
-	//[verbose setEnabled:[afsProperty useAfsdConfConfigFile]];
-	[verbose setState:[afsProperty verbose]?NSOnState:NSOffState];
-	
+    [dynRoot setState:[afsProperty dynRoot]?NSOnState:NSOffState];
+    [afsDB setState:[afsProperty afsDB]?NSOnState:NSOffState];
+    [statCacheEntry setIntValue:[afsProperty statCacheEntry]];
+    [dCacheDim setIntValue:[afsProperty dCacheDim]];
+    [cacheDimension setIntValue:[afsProperty cacheDimension]];
+    [daemonNumber setIntValue:[afsProperty daemonNumber]];
+    [afsRootMountPoint setStringValue:[afsProperty afsRootMountPoint]];
+    [nVolEntry setIntValue:[afsProperty nVolEntry]];
+
+    //new version property
+    //[verbose setEnabled:[afsProperty useAfsdConfConfigFile]];
+    [verbose setState:[afsProperty verbose]?NSOnState:NSOffState];
+
 }
 
 // -------------------------------------------------------------------------------
@@ -495,22 +495,21 @@
 // -------------------------------------------------------------------------------
 -(void) updateCacheParamFromView
 {
-	NSString *tmpAfsPath = [afsRootMountPoint stringValue];
-	if(!tmpAfsPath || ([tmpAfsPath length] == 0) || ([tmpAfsPath characterAtIndex:0] != '/')) 
-		@throw [NSException exceptionWithName:@"updateCacheParamFromView" 
-									   reason:kBadAfsRootMountPoint
-									 userInfo:nil];
+    NSString *tmpAfsPath = [afsRootMountPoint stringValue];
+    if(!tmpAfsPath || ([tmpAfsPath length] == 0) || ([tmpAfsPath characterAtIndex:0] != '/'))
+	@throw [NSException exceptionWithName:@"updateCacheParamFromView"
+			    reason:kBadAfsRootMountPoint
+			    userInfo:nil];
 
-	
-	[afsProperty setDynRoot:[dynRoot state]==NSOnState];
-	[afsProperty setAfsDB:[afsDB state]==NSOnState];
-	[afsProperty setStatCacheEntry:[statCacheEntry intValue]];
-	[afsProperty setDCacheDim:[dCacheDim intValue]]; 
-	[afsProperty setCacheDimension:[cacheDimension intValue]]; 
-	[afsProperty setDaemonNumber:[daemonNumber intValue]];
-	[afsProperty setAfsRootMountPoint:tmpAfsPath];
-	[afsProperty setNVolEntry:[nVolEntry intValue]];
-	[afsProperty setVerbose:[verbose state]==NSOnState];
+    [afsProperty setDynRoot:[dynRoot state]==NSOnState];
+    [afsProperty setAfsDB:[afsDB state]==NSOnState];
+    [afsProperty setStatCacheEntry:[statCacheEntry intValue]];
+    [afsProperty setDCacheDim:[dCacheDim intValue]];
+    [afsProperty setCacheDimension:[cacheDimension intValue]];
+    [afsProperty setDaemonNumber:[daemonNumber intValue]];
+    [afsProperty setAfsRootMountPoint:tmpAfsPath];
+    [afsProperty setNVolEntry:[nVolEntry intValue]];
+    [afsProperty setVerbose:[verbose state]==NSOnState];
 }
 
 
@@ -519,8 +518,8 @@
 // -------------------------------------------------------------------------------
 - (IBAction) showCellIP:(id) sender
 {
-	int rowSelected = [((NSTableView *) cellList) selectedRow];
-	[self modifyCellByIDX:rowSelected];
+    int rowSelected = [((NSTableView *) cellList) selectedRow];
+    [self modifyCellByIDX:rowSelected];
 }
 
 // -------------------------------------------------------------------------------
@@ -528,7 +527,7 @@
 // -------------------------------------------------------------------------------
 -(void) modifyCellByIDX:(int) idx
 {
-	[self modifyCell:[self getCellByIDX:idx]];
+    [self modifyCell:[self getCellByIDX:idx]];
 }
 
 // -------------------------------------------------------------------------------
@@ -536,13 +535,13 @@
 // -------------------------------------------------------------------------------
 -(void) modifyCell:(DBCellElement*) cellElement
 {
-	[NSBundle loadNibNamed:@"IpPanel" owner:self];
-	[((IpConfiguratorCommander*) ipConfControllerCommander) setWorkCell:cellElement];
-	[NSApp beginSheet: ipConfigurationSheet
+    [NSBundle loadNibNamed:@"IpPanel" owner:self];
+    [((IpConfiguratorCommander*) ipConfControllerCommander) setWorkCell:cellElement];
+    [NSApp beginSheet: ipConfigurationSheet
 	   modalForWindow: [[self mainView] window]
-		modalDelegate: self
+	   modalDelegate: self
 	   didEndSelector: @selector(didEndSheet:returnCode:contextInfo:)
-		  contextInfo: nil];
+	   contextInfo: nil];
 }
 
 // -------------------------------------------------------------------------------
@@ -550,132 +549,78 @@
 // -------------------------------------------------------------------------------
 - (IBAction) addRemoveCell:(id) sender
 {
-	switch([((NSControl*) sender) tag]){
-		case ADD_CELL_CONTROL_TAG:
-		{
-			DBCellElement *newCell = [[DBCellElement alloc] init];
-			if(!newCell) break;
-			
-			[newCell setCellName:kNewCellName];
-			[newCell setCellComment:kNewCellComment];
-			//cellArray = ;
-			[[afsProperty getCellList] addObject:newCell];
-			[newCell release];
-			
-			//Modify new cell
-			[self modifyCell:newCell];
-		}
-		break;
-			
-		case REMOVE_CELL_CONTROL_TAG:
-		{
-			int index = 0;
-			NSIndexSet *selectedIndex = [(NSTableView*)cellList selectedRowIndexes];
-			if( [selectedIndex count] > 0) {
-				index = [selectedIndex firstIndex]; 
-				do {
-					DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:index];
-					[[afsProperty getCellList] removeObject:cellElement];
-				} while ((index = [selectedIndex indexGreaterThanIndex:index]) != NSNotFound);
-			}
-		}
-		break;
-	}
-	//Filter the cellServDb and allocate filtered array
-	[self searchCellTextEvent:nil];
-	[(NSTableView*)cellList deselectAll:nil];
-	[(NSTableView*)cellList reloadData];
-}
-
-// -------------------------------------------------------------------------------
-//  repairHelperTool:
-// -------------------------------------------------------------------------------
-- (void) repairHelperTool
-{
-	struct stat st;
-    int fdTool;
-	int status = 0;
-	NSLog(@"repairHelperTool"); 
-	NSString *afshlpPath = [[self bundle] pathForResource:@"afshlp" ofType:nil];
+    switch([((NSControl*) sender) tag]){
+    case ADD_CELL_CONTROL_TAG:
+    {
+	DBCellElement *newCell = [[DBCellElement alloc] init];
+	if(!newCell) break;
 	
+	[newCell setCellName:kNewCellName];
+	[newCell setCellComment:kNewCellComment];
+	//cellArray = ;
+	[[afsProperty getCellList] addObject:newCell];
+	[newCell release];
 	
-    
-    // Open tool exclusively, so nobody can change it while we bless it.
-    fdTool = open([afshlpPath UTF8String], O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
-    
-    if(fdTool == -1)
-    {
-        NSLog(@"Exclusive open while repairing tool failed: %d.", errno);
-        exit(-1);
+	//Modify new cell
+	[self modifyCell:newCell];
     }
+    break;
     
-    if(fstat(fdTool, &st))
+    case REMOVE_CELL_CONTROL_TAG:
     {
-        NSLog(@"fstat failed.");
-        exit(-1);
+	int index = 0;
+	NSIndexSet *selectedIndex = [(NSTableView*)cellList selectedRowIndexes];
+	if( [selectedIndex count] > 0) {
+	    index = [selectedIndex firstIndex];
+	    do {
+		DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:index];
+		[[afsProperty getCellList] removeObject:cellElement];
+	    } while ((index = [selectedIndex indexGreaterThanIndex:index]) != NSNotFound);
+	}
     }
-    
-    if(st.st_uid != 0)
-    {
-		status = [[AuthUtil shared] autorize];
-		if(status == noErr){
-			fchown(fdTool, 0, st.st_gid);
-			
-			// Disable group and world writability and make setuid root.
-			fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH)))/* | S_ISUID*/);
-			const char *args[] = {"root", [afshlpPath UTF8String],0L};
-			[[AuthUtil shared] execUnixCommand:"/usr/sbin/chown" 
-										  args:args
-										output:nil];
-			[[AuthUtil shared] deautorize];
-		}
-    } else  NSLog(@"st_uid = 0");
-    
-	
-    
-    close(fdTool);
-    
-    NSLog(@"Self-repair done.");
-	
+    break;
+    }
+    //Filter the cellServDb and allocate filtered array
+    [self searchCellTextEvent:nil];
+    [cellList deselectAll:nil];
+    [cellList reloadData];
 }
 
-
 // -------------------------------------------------------------------------------
 //  startStopAfs:
 // -------------------------------------------------------------------------------
 - (IBAction) startStopAfs:(id) sender
 {
-	BOOL currentAfsState = NO;
-	@try {
-		currentAfsState = [afsProperty checkAfsStatus];
-		// make the parameter to call the root helper app
-		if(currentAfsState){
-			//shutdown afs
-			NSLog(@"Shutting down afs");
-			[afsProperty shutdown];
-		} else {
-			//Start afs
-			NSLog(@"Starting up afs");
-			[afsProperty startup];
-		}
-		[self refreshGui:nil];
-	}
-	@catch (NSException * e) {
-		[self showMessage:[e reason]];
-	}
-	@finally {
-		[[AuthUtil shared] deautorize];
+    BOOL currentAfsState = NO;
+    @try {
+	currentAfsState = [afsProperty checkAfsStatus];
+	// make the parameter to call the root helper app
+	if(currentAfsState){
+	    //shutdown afs
+	    NSLog(@"Shutting down afs");
+	    [afsProperty shutdown];
+	} else {
+	    //Start afs
+	    NSLog(@"Starting up afs");
+	    [afsProperty startup];
 	}
+	[self refreshGui:nil];
+    }
+    @catch (NSException * e) {
+	[self showMessage:[e reason]];
+    }
+    @finally {
+    }
 }
 
 // -------------------------------------------------------------------------------
 //  info:
 // -------------------------------------------------------------------------------
 - (void) refreshGui:(NSNotification *)notification{
-	BOOL afsIsUp = [afsProperty checkAfsStatus];
-	[self setAfsStatus];
-	[tokensButton setEnabled:afsIsUp];
-	[unlogButton setEnabled:afsIsUp];
+    BOOL afsIsUp = [afsProperty checkAfsStatus];
+    [self setAfsStatus];
+    [tokensButton setEnabled:afsIsUp];
+    [unlogButton setEnabled:afsIsUp];
 
 }
 
@@ -683,18 +628,19 @@
 //  -(void) refreshTokensNotify:(NSNotification*)notification
 // -------------------------------------------------------------------------------
 -(void) refreshTokensNotify:(NSNotification*)notification {
-	[self refreshTokens:nil];
+    [self refreshTokens:nil];
 }
 
 // -------------------------------------------------------------------------------
 //  afsVolumeMountChange: Track the afs volume state change
 // -------------------------------------------------------------------------------
+// XXX should use mountdir not /afs
 - (void) afsVolumeMountChange:(NSNotification *)notification{
-	// Cehck if is mounted or unmounted afs
-	if([[[notification userInfo] objectForKey:@"NSDevicePath"] isEqualToString:@"/afs"]){
-		[self setAfsStatus];
-		[self refreshTokens:nil];
-	}
+    // Check if is mounted or unmounted afs
+    if([[[notification userInfo] objectForKey:@"NSDevicePath"] isEqualToString:@"/afs"]){
+	[self setAfsStatus];
+	[self refreshTokens:nil];
+    }
 }
 
 // -------------------------------------------------------------------------------
@@ -702,13 +648,13 @@
 // -------------------------------------------------------------------------------
 - (IBAction) info:(id) sender
 {
-	[((InfoController*) infoController) showHtmlResource:[[self bundle] pathForResource:@"license" ofType:@"rtf"]];
+    [infoController showHtmlResource:[[self bundle] pathForResource:@"license" ofType:@"rtf"]];
 
-	[NSApp beginSheet: infoSheet
+    [NSApp beginSheet: infoSheet
 	   modalForWindow: [[self mainView] window]
-		modalDelegate: self
+	   modalDelegate: self
 	   didEndSelector:  @selector(didEndInfoSheet:returnCode:contextInfo:)
-		  contextInfo: nil];
+	   contextInfo: nil];
 }
 
 // -------------------------------------------------------------------------------
@@ -716,7 +662,7 @@
 // -------------------------------------------------------------------------------
 - (IBAction) tableDoubleAction:(id) sender
 {
-	[self showCellIP:nil];
+    [self showCellIP:nil];
 }
 
 // -------------------------------------------------------------------------------
@@ -724,24 +670,24 @@
 // -------------------------------------------------------------------------------
 - (IBAction) getNewToken:(id) sender
 {
-	BOOL useAklog = [useAklogCheck state] == NSOnState;
-	if(useAklog){
-		//[AFSPropertyManager aklog];
-		[afsProperty getTokens:false 
-						   usr:nil 
-						   pwd:nil];
-		[self refreshTokens:nil];
-		//Inform afs menuextra to updata afs status
-		[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
+    BOOL useAklog = [useAklogCheck state] == NSOnState;
+    if(useAklog){
+	//[AFSPropertyManager aklog];
+	[afsProperty getTokens:false
+		     usr:nil
+		     pwd:nil];
+	[self refreshTokens:nil];
+	//Inform afs menuextra to updata afs status
+	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
 
-	} else {
-		[NSBundle loadNibNamed:@"CredentialPanel" owner:self];
-		[NSApp beginSheet: credentialSheet
-		   modalForWindow: [[self mainView] window]
-			modalDelegate: self
-		   didEndSelector: @selector(didEndCredentialSheet:returnCode:contextInfo:)
-			  contextInfo: nil];
-	}
+    } else {
+	[NSBundle loadNibNamed:@"CredentialPanel" owner:self];
+	[NSApp beginSheet: credentialSheet
+	       modalForWindow: [[self mainView] window]
+	       modalDelegate: self
+	       didEndSelector: @selector(didEndCredentialSheet:returnCode:contextInfo:)
+	       contextInfo: nil];
+    }
 }
 
 
@@ -750,23 +696,22 @@
 // -------------------------------------------------------------------------------
 - (IBAction) unlog:(id) sender
 {
-	int index = -1;
-	NSIndexSet *selectedIndex = [(NSTableView*)tokensTable selectedRowIndexes];
-	if( [selectedIndex count] > 0) {
-		index = [selectedIndex firstIndex]; 
-		do {
-			NSString *tokenDesc = [tokenList objectAtIndex:index];
-			NSString *cellToUnlog = [tokenDesc estractTokenByDelimiter:@"afs@" 
-															  endToken:@" "];
-			[afsProperty unlog:cellToUnlog];
-		} while ((index = [selectedIndex indexGreaterThanIndex: index]) != NSNotFound);
-	} else {
-		[afsProperty unlog:nil];
-	}
-	[self refreshTokens:nil];
-	//Inform afs menuextra to updata afs status
-	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
-
+    int index = -1;
+    NSIndexSet *selectedIndex = [tokensTable selectedRowIndexes];
+    if( [selectedIndex count] > 0) {
+	index = [selectedIndex firstIndex];
+	do {
+	    NSString *tokenDesc = [tokenList objectAtIndex:index];
+	    NSString *cellToUnlog = [tokenDesc estractTokenByDelimiter:@"afs@"
+					       endToken:@" "];
+	    [afsProperty unlog:cellToUnlog];
+	} while ((index = [selectedIndex indexGreaterThanIndex: index]) != NSNotFound);
+    } else {
+	[afsProperty unlog:nil];
+    }
+    [self refreshTokens:nil];
+    //Inform afs menuextra to updata afs status
+    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
 }
 
 
@@ -775,47 +720,43 @@
 // -------------------------------------------------------------------------------
 - (IBAction) aklogSwitchEvent:(id) sender
 {
-	//afs menu extra is loaded inform it to read preference
-	@try {
-		if(![useAklogCheck state]) {
-			//deselect the checkbox
-			[aklogCredentialAtLoginTime setState:NO];
-		}
-		
-		[self writePreferenceFile];
-		
-		//Enable disable aklog at login time checkbox according the useAklog checkbox
-		[aklogCredentialAtLoginTime setEnabled:[useAklogCheck state]];
-		
-	}
-	@catch (NSException * e) {
-		[self showMessage:[e reason]];
+    //afs menu extra is loaded inform it to read preference
+    @try {
+	if(![useAklogCheck state]) {
+	    //deselect the checkbox
+	    [aklogCredentialAtLoginTime setState:NO];
 	}
 	
-		
+	[self writePreferenceFile];
+
+	//Enable disable aklog at login time checkbox according the useAklog checkbox
+	[aklogCredentialAtLoginTime setEnabled:[useAklogCheck state]];
+
+    }
+    @catch (NSException * e) {
+	[self showMessage:[e reason]];
+    }
 }
 
 // -------------------------------------------------------------------------------
 //  credentialAtLoginTimeEvent:
 // -------------------------------------------------------------------------------
 - (IBAction) credentialAtLoginTimeEvent:(id) sender {
-	[self writePreferenceFile];
+    [self writePreferenceFile];
 }
 
 // -------------------------------------------------------------------------------
 //  afsStartupSwitchEvent:
 // -------------------------------------------------------------------------------
 - (IBAction) afsStartupSwitchEvent:(id) sender {
-	NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
-	//get the new state
-	startAFSAtLogin = [checkButtonAfsAtBootTime state];
-	const char *startupConfigureOption[] = {"start_afs_at_startup", startAFSAtLogin?"enable":"disable", 0L};
-	if([[AuthUtil shared] autorize] == noErr) {
-			//now disable the launchd configuration
-			[[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String]
-										  args:startupConfigureOption
-										output:nil];
-	}
+    NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+    //get the new state
+    startAFSAtLogin = [checkButtonAfsAtBootTime state];
+    [PListManager launchctlStringCommandAuth:startAFSAtLogin?@"load":@"unload"
+		  option:[NSArray arrayWithObjects:@"-w", nil]
+		  plistName:@AFS_DAEMON_PATH
+		  helper:rootHelperApp
+		  withAuthRef:[[authView authorization] authorizationRef]];
 }
 
 
@@ -823,20 +764,11 @@
 //  afsMenuActivationEvent:
 // -------------------------------------------------------------------------------
 - (IBAction) krb5KredentialAtLoginTimeEvent:(id) sender {
-	//
-	NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
-	const char *args[] = {"enable_krb5_startup", [[installKRB5AuthAtLoginButton stringValue] UTF8String], "", 0L};
-	
-	//Check helper app
-	[self repairHelperTool];
-	if([[AuthUtil shared] autorize] == noErr) {
-		[[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String] 
-									  args:args
-									output:nil];
-		
-		//check if all is gone well
-		[installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
-	}
+    NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+    [PListManager krb5TiketAtLoginTime:[installKRB5AuthAtLoginButton state] helper:rootHelperApp];
+
+    //check if all is gone well
+    [installKRB5AuthAtLoginButton setState:[PListManager checkKrb5AtLoginTimeLaunchdEnable]];
 }
 
 // -------------------------------------------------------------------------------
@@ -844,15 +776,15 @@
 // -------------------------------------------------------------------------------
 -(IBAction) afsMenuActivationEvent:(id) sender
 {
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU, 
-						  (CFNumberRef)[NSNumber numberWithBool:[(NSButton*)afsMenucheckBox state]],
-						  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-	CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
-	CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-	//notify the backgrounder
-	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSMenuChangeState];
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_SHOW_STATUS_MENU,
+			  (CFNumberRef)[NSNumber numberWithBool:[(NSButton*)afsMenucheckBox state]],
+			  (CFStringRef)kAfsCommanderID, kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesAnyUser, kCFPreferencesAnyHost);
+    CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //notify the backgrounder
+    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSMenuChangeState];
 }
 
 // -------------------------------------------------------------------------------
@@ -861,10 +793,9 @@
 // -------------------------------------------------------------------------------
 - (IBAction) searchCellTextEvent:(id) sender
 {
-	
-	NSString *searchText = [[textSearchField stringValue] lowercaseString]; //filter string
-	[self filterCellServDB:searchText];
-	[((NSTableView*)cellList) reloadData];
+    NSString *searchText = [[textSearchField stringValue] lowercaseString]; //filter string
+    [self filterCellServDB:searchText];
+    [((NSTableView*)cellList) reloadData];
 }
 
 // -------------------------------------------------------------------------------
@@ -872,39 +803,39 @@
 //		clear the NSSearchField and showw all CellServDB table
 // -------------------------------------------------------------------------------
 - (void) clearCellServDBFiltering {
-	//Clear the text search
-	[textSearchField setStringValue:@""];
-	//load the temp array with all cell servdb
-	[self searchCellTextEvent:nil];
+    //Clear the text search
+    [textSearchField setStringValue:@""];
+    //load the temp array with all cell servdb
+    [self searchCellTextEvent:nil];
 }
 // --------------------------------------o-----------------------------------------
 //  filterCellServDB:
 //  make the NSMutableArray with all cellservdb or filtered element
 // -------------------------------------------------------------------------------
 - (void) filterCellServDB:(NSString*)textToFilter {
-	DBCellElement *cellElement; //Filtered element
-	BOOL doFilter = !(textToFilter == nil || ([textToFilter length] == 0));
-	
-	// We can do filtering and make the temp array
-	if(filteredCellDB){
-		[filteredCellDB release];
-	}
-	filteredCellDB = [[NSMutableArray alloc] init];
-	NSEnumerator *e = [[afsProperty getCellList] objectEnumerator];
-	while(cellElement = (DBCellElement*)[e nextObject]) {
-		// check if the element can be get
-		if(doFilter) {
-			//Get the CellServDB array enumerator
-			NSRange rsltRng = [[[cellElement getCellName] lowercaseString] rangeOfString:textToFilter];
-		   if(rsltRng.location != NSNotFound) {
-			//we can add this cell to filtered
-			[filteredCellDB addObject:[cellElement retain]];
-		   }
-		} else {
-			[filteredCellDB addObject:[cellElement retain]];
-
-		}
+    DBCellElement *cellElement; //Filtered element
+    BOOL doFilter = !(textToFilter == nil || ([textToFilter length] == 0));
+
+    // We can do filtering and make the temp array
+    if(filteredCellDB){
+	[filteredCellDB release];
+    }
+    filteredCellDB = [[NSMutableArray alloc] init];
+    NSEnumerator *e = [[afsProperty getCellList] objectEnumerator];
+    while(cellElement = (DBCellElement*)[e nextObject]) {
+	// check if the element can be get
+	if(doFilter) {
+	    //Get the CellServDB array enumerator
+	    NSRange rsltRng = [[[cellElement getCellName] lowercaseString] rangeOfString:textToFilter];
+	    if(rsltRng.location != NSNotFound) {
+		//we can add this cell to filtered
+		[filteredCellDB addObject:[cellElement retain]];
+	    }
+	} else {
+	    [filteredCellDB addObject:[cellElement retain]];
+
 	}
+    }
 }
 		   
 // -------------------------------------------------------------------------------
@@ -912,8 +843,8 @@
 // -------------------------------------------------------------------------------
 - (DBCellElement*) getCurrentCellInDB
 {
-	int rowSelected = [((NSTableView *) cellList) selectedRow];
-	return [self getCellByIDX:rowSelected];
+    int rowSelected = [cellList selectedRow];
+    return [self getCellByIDX:rowSelected];
 }
 
 // -------------------------------------------------------------------------------
@@ -921,23 +852,22 @@
 // -------------------------------------------------------------------------------
 - (DBCellElement*) getCellByIDX:(int) idx
 {
-	//NSMutableArray *cellArray = [afsProperty getCellList];
-	DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:idx];
-	return cellElement;
+    DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:idx];
+    return cellElement;
 }
 
 // -------------------------------------------------------------------------------
 //  showMessage:
 // -------------------------------------------------------------------------------
 -(void) showMessage:(NSString*) message{
-	NSAlert *alert = [[NSAlert alloc] init];
-	
-	[alert setMessageText:message];
-	[alert beginSheetModalForWindow:[[self mainView] window]
-					  modalDelegate:nil 
-					 didEndSelector:nil
-						contextInfo:nil];
-	[alert release];
+    NSAlert *alert = [[NSAlert alloc] init];
+
+    [alert setMessageText:message];
+    [alert beginSheetModalForWindow:[[self mainView] window]
+	   modalDelegate:nil
+	   didEndSelector:nil
+	   contextInfo:nil];
+    [alert release];
 }
 
 // -------------------------------------------------------------------------------
@@ -945,46 +875,36 @@
 // -------------------------------------------------------------------------------
 -(void) setAfsStatus
 {
-	
-	BOOL afsIsUp = [afsProperty checkAfsStatus];
-	BOOL afsEnabledAtStartup = NO;
-	
-	NSMutableString *commandOutput = [NSMutableString stringWithCapacity:20];
-	NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
-		
-#if 0
-			// make the parameter to call the root helper app
-	const char *checkAFSDaemonParam[] = {"check_afs_daemon",  0L};
-	if([[AuthUtil shared] autorize] == noErr) {
-				//now disable the launchd configuration
-		[[AuthUtil shared] execUnixCommand:[rootHelperApp UTF8String]
-									  args:checkAFSDaemonParam
-									output:commandOutput];
-		afsEnabledAtStartup = [commandOutput rangeOfString:@"afshlp:afs daemon registration result:1"].location!=NSNotFound;
-	}
-#else
-	afsEnabledAtStartup = 1;
-#endif
-	
-	
+    BOOL afsIsUp = [afsProperty checkAfsStatus];
+    BOOL afsEnabledAtStartup = NO;
+    NSString *rootHelperApp = [[self bundle] pathForResource:@"afshlp" ofType:@""];
+
+    if ([self isUnlocked]) {
+	afsEnabledAtStartup = (
+	    [TaskUtil executeTaskWithAuth:@"/bin/launchctl"
+		      arguments:[NSArray arrayWithObjects:@"list",
+					 @"org.openafs.filesystems.afs", nil]
+		      helper:rootHelperApp
+		      withAuthRef:[[authView authorization] authorizationRef]
+	     ] == noErr)?YES:NO;
+	[checkButtonAfsAtBootTime setState:afsEnabledAtStartup];
+    }
 
+    [startStopButton setTitle: (afsIsUp?kAfsButtonShutdown:kAfsButtonStartup)];
 
-	[((NSButton *)startStopButton) setTitle: (afsIsUp?kAfsButtonShutdown:kAfsButtonStartup)];
-	
-	NSMutableAttributedString *colorTitle =[[NSMutableAttributedString alloc] initWithAttributedString:[((NSButton *)startStopButton) attributedTitle]];
+    NSMutableAttributedString *colorTitle =[[NSMutableAttributedString alloc] initWithAttributedString:[startStopButton attributedTitle]];
     NSRange titleRange = NSMakeRange(0, [colorTitle length]);
-	
+
     [colorTitle addAttribute:NSForegroundColorAttributeName
-                       value:(afsIsUp?[NSColor redColor]:[NSColor blackColor])
-                       range:titleRange];
-	
-    [((NSButton *)startStopButton) setAttributedTitle:colorTitle];
-	[checkButtonAfsAtBootTime setState:afsEnabledAtStartup];
-	if(afsIsUp) {
-		[self startTimer];
-	} else {
-		[self stopTimer];
-	}
+		value:(afsIsUp?[NSColor redColor]:[NSColor blackColor])
+		range:titleRange];
+
+    [startStopButton setAttributedTitle:colorTitle];
+    if(afsIsUp) {
+	[self startTimer];
+    } else {
+	[self stopTimer];
+    }
 }
 
 // -------------------------------------------------------------------------------
@@ -992,87 +912,86 @@
 // -------------------------------------------------------------------------------
 - (void) refreshTokens:(NSTimer*)theTimer;
 {
-	if(![tokensLock tryLock]) return;
-	if(tokenList){
-		[tokenList release];
-	}
-	
-	tokenList = [afsProperty getTokenList];
-	[((NSTableView*)tokensTable) reloadData];
-	[tokensLock unlock];
+    if(![tokensLock tryLock]) return;
+    if(tokenList){
+	[tokenList release];
+    }
+
+    tokenList = [afsProperty getTokenList];
+    [tokensTable reloadData];
+    [tokensLock unlock];
 }
 
 // -------------------------------------------------------------------------------
 //  removeExtra:
 // -------------------------------------------------------------------------------
 - (IBAction) addLink:(id) sender {
-	[NSBundle loadNibNamed:@"SymLinkEdit" owner:self];
-	
-	[NSApp beginSheet: lyncCreationSheet
+    [NSBundle loadNibNamed:@"SymLinkEdit" owner:self];
+
+    [NSApp beginSheet: lyncCreationSheet
 	   modalForWindow: [[self mainView] window]
-		modalDelegate: self
+	   modalDelegate: self
 	   didEndSelector: @selector(didEndSymlinkSheet:returnCode:contextInfo:)
-		  contextInfo: nil];
-	
+	   contextInfo: nil];
 }
 
 // -------------------------------------------------------------------------------
 //  removeExtra:
 // -------------------------------------------------------------------------------
 - (IBAction) removeLink:(id) sender {
-	if(!linkConfiguration) return;
-	int index = 0;
-	NSArray *keys = [linkConfiguration allKeys];
-	NSIndexSet *linkToRemove = [tableViewLink selectedRowIndexes];
-	if( [linkToRemove count] > 0) {
-		index = [linkToRemove firstIndex];
-		do {
-			[linkConfiguration removeObjectForKey:[keys objectAtIndex:index]];
-		} while ((index = [linkToRemove indexGreaterThanIndex:index]) != -1);
-	}
-	
-	//write the new configuration
-	NSData *prefData = nil;
-	if([linkConfiguration count] > 0) {
-		prefData = [NSPropertyListSerialization dataWithPropertyList:linkConfiguration
-															  format:NSPropertyListXMLFormat_v1_0
-															 options:0
-															   error:nil];
-	}
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_LINK_CONFIGURATION,
-						  (CFDataRef)prefData,
-						  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-	CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	
-	//reload the new data
-	[tableViewLink reloadData];
+    if(!linkConfiguration) return;
+    int index = 0;
+    NSArray *keys = [linkConfiguration allKeys];
+    NSIndexSet *linkToRemove = [tableViewLink selectedRowIndexes];
+    if( [linkToRemove count] > 0) {
+	index = [linkToRemove firstIndex];
+	do {
+	    [linkConfiguration removeObjectForKey:[keys objectAtIndex:index]];
+	} while ((index = [linkToRemove indexGreaterThanIndex:index]) != -1);
+    }
+
+    //write the new configuration
+    NSData *prefData = nil;
+    if([linkConfiguration count] > 0) {
+	prefData = [NSPropertyListSerialization dataWithPropertyList:linkConfiguration
+						format:NSPropertyListXMLFormat_v1_0
+						options:0
+						error:nil];
+    }
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_LINK_CONFIGURATION,
+			  (CFDataRef)prefData,
+			  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+
+    //reload the new data
+    [tableViewLink reloadData];
 }
 
 // -------------------------------------------------------------------------------
 //  removeExtra:
 // -------------------------------------------------------------------------------
 - (IBAction) enableLink:(id) sender {
-	[self writePreferenceFile];
+    [self writePreferenceFile];
 }
 
 // -------------------------------------------------------------------------------
 //  removeExtra:
 // -------------------------------------------------------------------------------
 - (IBAction) manageBackgrounderActivation:(id)sender {
-	[PListManager launchctlCommand:[(NSButton*)sender state] 
-						userDomain:YES 
-							option:[NSArray arrayWithObjects:@"-S", @"Aqua", nil] 
-						 plistName:[NSString stringWithFormat:@"%@.plist", BACKGROUNDER_P_FILE]];
-	//re ad the status to check taht all is gone well
-	[backgrounderActivationCheck setState:[PListManager launchdJobState:BACKGROUNDER_P_FILE]];
+    [PListManager launchctlCommand:[(NSButton*)sender state]
+		  userDomain:YES
+		  option:[NSArray arrayWithObjects:@"-S", @"Aqua", nil]
+		  plistName:[NSString stringWithFormat:@"%@.plist", BACKGROUNDER_P_FILE]];
+    //read the status to check that all is gone well
+    [backgrounderActivationCheck setState:[PListManager launchdJobState:BACKGROUNDER_P_FILE]];
 }
 
 // -------------------------------------------------------------------------------
 //  tableViewLinkPerformClick:
 // -------------------------------------------------------------------------------
 - (IBAction) tableViewLinkPerformClick:(id) sender {
-	NSLog(@"tableViewLinkPerformClick");
+    NSLog(@"tableViewLinkPerformClick");
 }
 
 // -------------------------------------------------------------------------------
@@ -1080,29 +999,49 @@
 // -------------------------------------------------------------------------------
 - (void)tabView:(NSTabView *)tabView willSelectTabViewItem: (NSTabViewItem *)tabViewItem 
 {
-	//check to see if the cache param tab is the tab that will be selected
-	if([((NSString*)[tabViewItem identifier]) intValue] == TAB_LINK)
-	{
-		[tableViewLink reloadData];
-	}
+    //check to see if the cache param tab is the tab that will be selected
+    if([((NSString*)[tabViewItem identifier]) intValue] == TAB_LINK)
+    {
+	[tableViewLink reloadData];
+    }
 }
 // -------------------------------------------------------------------------------
 //  tableViewLinkPerformClick:
 // -------------------------------------------------------------------------------
 - (IBAction) enableDisableKrb5RenewCheck:(id) sender {
-	//NSLog(@"enableDisableKrb5RenewCheck");
-	CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_CHECK_ENABLE,
-						  (CFNumberRef) [NSNumber numberWithInt:[(NSButton*)sender intValue]],
-						  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-	CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
-		//notify the backgrounder
-	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kPrefChangeNotification];
+    //NSLog(@"enableDisableKrb5RenewCheck");
+    CFPreferencesSetValue((CFStringRef)PREFERENCE_KRB5_CHECK_ENABLE,
+			  (CFNumberRef) [NSNumber numberWithInt:[(NSButton*)sender intValue]],
+			  (CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    CFPreferencesSynchronize((CFStringRef)kAfsCommanderID,  kCFPreferencesCurrentUser, kCFPreferencesAnyHost);
+    //notify the backgrounder
+    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kPrefChangeNotification];
 }
 // -------------------------------------------------------------------------------
 //  tableViewLinkPerformClick:
 // -------------------------------------------------------------------------------
 - (IBAction) krb5RenewParamChange:(id) sender {
 }
+
+
+- (BOOL)isUnlocked {
+    return [authView authorizationState] == SFAuthorizationViewUnlockedState;
+}
+
+- (void)authorizationViewDidAuthorize:(SFAuthorizationView *)view {
+    // enable things
+    [startStopButton setEnabled:[self isUnlocked]];
+    [checkButtonAfsAtBootTime setEnabled:[self isUnlocked]];
+    [self setAfsStatus];
+    [installKRB5AuthAtLoginButton setEnabled:[self isUnlocked]];
+}
+
+- (void)authorizationViewDidDeauthorize:(SFAuthorizationView *)view {
+    // disable things
+    [startStopButton setEnabled:[self isUnlocked]];
+    [checkButtonAfsAtBootTime setEnabled:[self isUnlocked]];
+    [installKRB5AuthAtLoginButton setEnabled:[self isUnlocked]];
+}
 @end
 
 @implementation AFSCommanderPref (NSTableDataSource)
@@ -1116,29 +1055,28 @@
 - (void)tableView:(NSTableView *)table 
    setObjectValue:(id)data 
    forTableColumn:(NSTableColumn *)col 
-			  row:(int)row
+	      row:(int)row
 {
-	NSString *identifier = (NSString*)[col identifier];
-	switch([table tag]){
-		case TABLE_TOKENS_LIST:
-			break;
-			
-		case TABLE_CELL_LIST:
-			// we are editing checkbox for cellservdb table
-			if([identifier intValue] == CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN) {
-				// set the user default cell
-				DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
-				[afsProperty setDefaultCellByName:[cellElement getCellName]];
-				//[afsDefaultCellLabel setStringValue:[afsProperty getDefaultCellName]];
-				[((NSTableView*)cellList) reloadData];
-			} else if([identifier intValue] == CELLSRVDB_TABLE_DFLT_CHECK_COLUMN) {
-				// set the cell for wich the user want to get token
-				DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
-				[cellElement setUserDefaultForToken:![cellElement userDefaultForToken]];
-			}  
-			break;
-	}
+    NSString *identifier = (NSString*)[col identifier];
+    switch([table tag]){
+    case TABLE_TOKENS_LIST:
+	break;
 	
+    case TABLE_CELL_LIST:
+	// we are editing checkbox for cellservdb table
+	if([identifier intValue] == CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN) {
+	    // set the user default cell
+	    DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
+	    [afsProperty setDefaultCellByName:[cellElement getCellName]];
+	    //[afsDefaultCellLabel setStringValue:[afsProperty getDefaultCellName]];
+	    [((NSTableView*)cellList) reloadData];
+	} else if([identifier intValue] == CELLSRVDB_TABLE_DFLT_CHECK_COLUMN) {
+	    // set the cell for wich the user want to get token
+	    DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
+	    [cellElement setUserDefaultForToken:![cellElement userDefaultForToken]];
+	}
+	break;
+    }
 }
 
 
@@ -1146,31 +1084,28 @@
 //  tableView:
 //		refresh delegate method for two AFSCommander table
 // -------------------------------------------------------------------------------
-- (id) 	tableView:(NSTableView *) aTableView
-	objectValueForTableColumn:(NSTableColumn *) aTableColumn
-						  row:(int) rowIndex
+- (id) tableView:(NSTableView *) aTableView
+objectValueForTableColumn:(NSTableColumn *) aTableColumn
+	     row:(int) rowIndex
 {  
+    id result = nil;
+    NSString *identifier = (NSString*)[aTableColumn identifier];
+    switch([aTableView tag]){
+    case TABLE_TOKENS_LIST:
+	//We are refreshing tokens table
+	result = [self getTableTokensListValue:[identifier intValue] row:rowIndex];
+	break;
 	
-	id result = nil;
-	NSString *identifier = (NSString*)[aTableColumn identifier];
-	switch([aTableView tag]){
-		case TABLE_TOKENS_LIST:
-			//We are refreshing tokens table
-			result = [self getTableTokensListValue:[identifier intValue] row:rowIndex];
-			break;
-			
-		case TABLE_CELL_LIST:
-			//We are refreshing cell db table
-			result = [self getTableCelListValue:[identifier intValue] row:rowIndex];
-			break;
-			
-		case TABLE_LINK_LIST:
-			result = [self getTableLinkValue:[identifier intValue] row:rowIndex];
-			break;
-
-		
-	}
-	return result;  
+    case TABLE_CELL_LIST:
+	//We are refreshing cell db table
+	result = [self getTableCelListValue:[identifier intValue] row:rowIndex];
+	break;
+
+    case TABLE_LINK_LIST:
+	result = [self getTableLinkValue:[identifier intValue] row:rowIndex];
+	break;
+    }
+    return result;
 }
 
 
@@ -1179,14 +1114,14 @@
 // -------------------------------------------------------------------------------
 - (id)getTableTokensListValue:(int) colId row:(int)row
 {
-	id result = nil;
-	if(!tokenList) return nil;
-	switch(colId){
-		case 0:
-			result = (NSString*)[tokenList objectAtIndex:row];
-			break;
-	}
-	return result;
+    id result = nil;
+    if(!tokenList) return nil;
+    switch(colId){
+    case 0:
+	result = (NSString*)[tokenList objectAtIndex:row];
+	break;
+    }
+    return result;
 }
 
 
@@ -1195,26 +1130,26 @@
 // -------------------------------------------------------------------------------
 - (id)getTableCelListValue:(int) colId row:(int)row
 {
-	id result = nil;
-	//NSMutableArray *cellArray = [afsProperty getCellList];
-	DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
-	switch(colId){
-		case CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN:
-			result = [NSNumber numberWithInt:[cellElement userDefaultForCell]];
-			break;
-			
-		case CELLSRVDB_TABLE_DFLT_CHECK_COLUMN:
-			result = [NSNumber numberWithInt:[cellElement userDefaultForToken]];
-			break;
-		case CELLSRVDB_TABLE_NAME_COLUMN:
-			result = [cellElement getCellName];
-			break;
-			
-		case CELLSRVDB_TABLE_DESCRIPTION_COLUMN:
-			result = [cellElement getCellComment];
-			break;
-	}
-	return result;
+    id result = nil;
+    //NSMutableArray *cellArray = [afsProperty getCellList];
+    DBCellElement *cellElement =  (DBCellElement*)[filteredCellDB objectAtIndex:row];
+    switch(colId){
+    case CELLSRVDB_TABLE_USR_DFLT_CHECK_COLUMN:
+	result = [NSNumber numberWithInt:[cellElement userDefaultForCell]];
+	break;
+
+    case CELLSRVDB_TABLE_DFLT_CHECK_COLUMN:
+	result = [NSNumber numberWithInt:[cellElement userDefaultForToken]];
+	break;
+    case CELLSRVDB_TABLE_NAME_COLUMN:
+	result = [cellElement getCellName];
+	break;
+
+    case CELLSRVDB_TABLE_DESCRIPTION_COLUMN:
+	result = [cellElement getCellComment];
+	break;
+    }
+    return result;
 }
 
 // -------------------------------------------------------------------------------
@@ -1222,18 +1157,18 @@
 // -------------------------------------------------------------------------------
 - (id)getTableLinkValue:(int) colId row:(int)row
 {
-	id result = nil;
-	NSArray *allKey = [linkConfiguration allKeys];
-	switch(colId){
-		case TABLE_COLUMN_LINK_NAME:
-			result = [allKey objectAtIndex:row];
-			break;
-			
-		case TABLE_COLUMN_LINK_PATH:
-			result = [linkConfiguration objectForKey:[allKey objectAtIndex:row]];
-			break;
-	}
-	return result;
+    id result = nil;
+    NSArray *allKey = [linkConfiguration allKeys];
+    switch(colId){
+    case TABLE_COLUMN_LINK_NAME:
+	result = [allKey objectAtIndex:row];
+	break;
+
+    case TABLE_COLUMN_LINK_PATH:
+	result = [linkConfiguration objectForKey:[allKey objectAtIndex:row]];
+	break;
+    }
+    return result;
 }
 
 
@@ -1242,25 +1177,21 @@
 // -------------------------------------------------------------------------------
 - (int)numberOfRowsInTableView:(NSTableView *)aTableView
 {
-	int rowCount = 0;
-	//NSMutableArray *cellArray = nil;
-	switch([aTableView tag]){
-		case TABLE_TOKENS_LIST:
-			if(tokenList)  rowCount = [tokenList count];
-			break;
-			
-		case TABLE_CELL_LIST:
-			//cellArray = [afsProperty getCellList];
-			if(filteredCellDB)  rowCount = [filteredCellDB count];
-			break;
-			
-		case TABLE_LINK_LIST:
-			if(linkConfiguration)  rowCount = [linkConfiguration count];
-			break;
-
-			
-	}	
-	return rowCount;  
+    int rowCount = 0;
+    switch([aTableView tag]){
+    case TABLE_TOKENS_LIST:
+	if(tokenList)  rowCount = [tokenList count];
+	break;
+
+    case TABLE_CELL_LIST:
+	if(filteredCellDB)  rowCount = [filteredCellDB count];
+	break;
+
+    case TABLE_LINK_LIST:
+	if(linkConfiguration)  rowCount = [linkConfiguration count];
+	break;
+    }
+    return rowCount;
 }
 @end
 
@@ -1271,22 +1202,21 @@
 // -------------------------------------------------------------------------------
 - (BOOL)selectionShouldChangeInTableView:(NSTableView *)aTable
 {
-	switch([aTable tag]){
-		case TABLE_TOKENS_LIST:
-			
-			break;
-			
-		case TABLE_CELL_LIST:
-			[self tableViewCellmanageButtonState:[aTable selectedRow]];
-			break;
-			
-		case TABLE_LINK_LIST:
-			break;
-			
-			
-	}	
+    switch([aTable tag]){
+    case TABLE_TOKENS_LIST:
+	break;
 	
-	return YES;
+    case TABLE_CELL_LIST:
+	[self tableViewCellmanageButtonState:[aTable selectedRow]];
+	break;
+
+    case TABLE_LINK_LIST:
+	break;
+
+
+    }
+
+    return YES;
 }
 
 // -------------------------------------------------------------------------------
@@ -1294,56 +1224,50 @@
 // -------------------------------------------------------------------------------
 - (BOOL)tableView:(NSTableView *)aTable shouldSelectRow:(int)aRow
 {
-	switch([aTable tag]){
-		case TABLE_TOKENS_LIST:
-			
-			break;
-			
-		case TABLE_CELL_LIST:
-			[self tableViewCellmanageButtonState:aRow];
-			break;
-			
-		case TABLE_LINK_LIST:
-			break;
-			
-			
-	}
+    switch([aTable tag]){
+    case TABLE_TOKENS_LIST:
+	break;
+
+    case TABLE_CELL_LIST:
+	[self tableViewCellmanageButtonState:aRow];
+	break;
 	
-	return YES;
+    case TABLE_LINK_LIST:
+	break;
+    }
+    return YES;
 }
 
 // -------------------------------------------------------------------------------
 //  tableView:
 // -------------------------------------------------------------------------------
 - (void)tableViewSelectionDidChange:(NSNotification *)aNotification {
-	NSTableView *aTable = [aNotification object];
-	switch([aTable tag]){
-		case TABLE_TOKENS_LIST:
-			break;
-			
-		case TABLE_CELL_LIST:
-			break;
-			
-		case TABLE_LINK_LIST:
-			[self tableViewLinkmanageButtonState:[aTable selectedRowIndexes]];
-			break;
-			
-			
-	}
+    NSTableView *aTable = [aNotification object];
+    switch([aTable tag]){
+    case TABLE_TOKENS_LIST:
+	break;
+
+    case TABLE_CELL_LIST:
+	break;
+
+    case TABLE_LINK_LIST:
+	[self tableViewLinkmanageButtonState:[aTable selectedRowIndexes]];
+	break;
+    }
 }
 // -------------------------------------------------------------------------------
 //  manageButtonState:
 // -------------------------------------------------------------------------------
 -(void) tableViewCellmanageButtonState:(int) rowSelected  {
-	[((NSControl*) cellIpButton) setEnabled:rowSelected >= 0];
-	[((NSControl*) removeCellButton) setEnabled:rowSelected >= 0];
+    [cellIpButton setEnabled:rowSelected >= 0];
+    [removeCellButton setEnabled:rowSelected >= 0];
 }
 
 // -------------------------------------------------------------------------------
 //  manageButtonState:
 // -------------------------------------------------------------------------------
 -(void) tableViewLinkmanageButtonState:(NSIndexSet *) rowsSelectedIndex {
-	[buttonRemoveLink setEnabled:[rowsSelectedIndex count]>0];
+    [buttonRemoveLink setEnabled:[rowsSelectedIndex count]>0];
 }
 @end
 
@@ -1355,9 +1279,9 @@
 - (void)didEndSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
 {
     [sheet orderOut:self];
-	//Filter the cellServDb and allocate filtered array
-	[self searchCellTextEvent:nil];
-	[((NSTableView*)cellList) reloadData];
+    //Filter the cellServDb and allocate filtered array
+    [self searchCellTextEvent:nil];
+    [cellList reloadData];
 }
 
 // -------------------------------------------------------------------------------
@@ -1365,18 +1289,17 @@
 // -------------------------------------------------------------------------------
 - (void)didEndCredentialSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
 {
-	if([((TokenCredentialController*)credentialCommander) takenToken] == YES){
-		/*[AFSPropertyManager klog:[((TokenCredentialController*)credentialCommander) uName] 
-							uPwd:[((TokenCredentialController*)credentialCommander) uPwd] ];*/
-		[afsProperty getTokens:true 
-						   usr:[((TokenCredentialController*)credentialCommander) uName] 
-						   pwd:[((TokenCredentialController*)credentialCommander) uPwd]];
-	}
+    if([((TokenCredentialController*)credentialCommander) takenToken] == YES){
+	/*[AFSPropertyManager klog:[((TokenCredentialController*)credentialCommander) uName]
+	  uPwd:[((TokenCredentialController*)credentialCommander) uPwd] ];*/
+	[afsProperty getTokens:true
+		     usr:[((TokenCredentialController*)credentialCommander) uName]
+		     pwd:[((TokenCredentialController*)credentialCommander) uPwd]];
+    }
     [sheet orderOut:self];
-	[self refreshTokens:nil];
-	//Inform afs menuextra to updata afs status
-	[[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
-
+    [self refreshTokens:nil];
+    //Inform afs menuextra to updata afs status
+    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:kAFSMenuExtraID object:kMExtraAFSStateChange];
 }
 
 // -------------------------------------------------------------------------------
@@ -1384,7 +1307,7 @@
 // -------------------------------------------------------------------------------
 - (void)didEndInfoSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
 {
-	[sheet orderOut:self];
+    [sheet orderOut:self];
 }
 
 // -------------------------------------------------------------------------------
@@ -1392,9 +1315,8 @@
 // -------------------------------------------------------------------------------
 - (void)didEndSymlinkSheet:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
 {
-	[lyncCreationSheet orderOut:self];
-	[self readPreferenceFile];
-	[tableViewLink reloadData];
-	
+    [lyncCreationSheet orderOut:self];
+    [self readPreferenceFile];
+    [tableViewLink reloadData];
 }
 @end
diff --git a/src/platform/DARWIN/AFSPreference/AFSPropertyManager.h b/src/platform/DARWIN/AFSPreference/AFSPropertyManager.h
index e229c76..0ed4cd4 100644
--- a/src/platform/DARWIN/AFSPreference/AFSPropertyManager.h
+++ b/src/platform/DARWIN/AFSPreference/AFSPropertyManager.h
@@ -29,7 +29,7 @@
 	NSString *afsRootMountPoint;
 	int statCacheEntry;
 	int dCacheDim;
-	int	cacheDimension;
+	int cacheDimension;
 	int daemonNumber;
 	int nVolEntry;
 	bool dynRoot;
diff --git a/src/platform/DARWIN/AFSPreference/AFSPropertyManager.m b/src/platform/DARWIN/AFSPreference/AFSPropertyManager.m
index fb696da..e96fc74 100644
--- a/src/platform/DARWIN/AFSPreference/AFSPropertyManager.m
+++ b/src/platform/DARWIN/AFSPreference/AFSPropertyManager.m
@@ -92,7 +92,6 @@
 	if(cellList) {[cellList removeAllObjects];[cellList release];}
 	if(cellName) {[cellName release];}
 	if(futil) {
-		[futil endAutorization];
 		[futil release];
 		futil = nil; 
 	}
@@ -360,7 +359,7 @@
 	
 	NSCharacterSet *returnCS = [NSCharacterSet characterSetWithCharactersInString:@"\n"];
 	NSFileHandle *fileH = [NSFileHandle fileHandleForReadingAtPath:filePath];
-	if (!fileH) return nil;
+	if (!fileH) return 0;
 	NSData *fileHData = [fileH readDataToEndOfFile];
 	NSString *cacheInfoStrData = [[NSString alloc] initWithData:fileHData
 													   encoding:NSASCIIStringEncoding];
@@ -465,7 +464,7 @@
 // -------------------------------------------------------------------------------
 -(int) readOldAfsdOption:(NSString*)filePath
 {
-	if(!filePath) return nil;
+	if(!filePath) return 0;
 	return [self readAFSDParamLineContent:[[NSString stringWithContentsOfFile:filePath 
 															  encoding:NSUTF8StringEncoding 
 																 error:nil] stringByStandardizingPath]];
@@ -475,7 +474,7 @@
 //  readAFSDParamLineContent:
 // -------------------------------------------------------------------------------
 -(int) readAFSDParamLineContent:(NSString*) paramLine{
-	if (!paramLine) return nil;
+	if (!paramLine) return 0;
 
 	NSString *tmpString = nil;
 	NSCharacterSet *space = [NSCharacterSet characterSetWithCharactersInString:@" "];
@@ -537,16 +536,16 @@
 // -------------------------------------------------------------------------------
 -(int) readNewAfsdOption:(NSString*)filePath
 {
-	if(!filePath) return nil;
-	NSString *currentLines = nil;
-	NSString *paramValue = nil;
-	NSScanner *lineScanner = nil;
+	if(!filePath) return 0;
+	NSString *currentLines = 0;
+	NSString *paramValue = 0;
+	NSScanner *lineScanner = 0;
 	
 	//Get file content
 	NSString *newAFSDConfContent = [NSString stringWithContentsOfFile:filePath 
 															 encoding:NSUTF8StringEncoding 
 																error:nil];
-	if (!newAFSDConfContent) return nil;
+	if (!newAFSDConfContent) return 0;
 	
 	//get lines in array
 	NSArray *confLines = [newAFSDConfContent componentsSeparatedByString:@"\n"];
@@ -1078,23 +1077,18 @@
 // -------------------------------------------------------------------------------
 -(void) shutdown
 {
-	@try {
-		const char *stopArgs[] = {"stop", 0L};
-		if([[AuthUtil shared] autorize] == noErr) {
-			[[AuthUtil shared] execUnixCommand:AFS_DAEMON_STARTUPSCRIPT
-										  args:stopArgs
-										output:nil];
-		}
-
-	}
-	@catch (NSException * e) {
-		@throw e;
-	}
-	@finally {
-	
-	}
-	
-	
+  NSString *rootHelperApp = [[NSBundle bundleForClass:[self class]] pathForResource:@"afshlp" ofType:@""];
+    @try {
+	const char *stopArgs[] = {AFS_DAEMON_STARTUPSCRIPT, "stop", 0L};
+	[[AuthUtil shared] execUnixCommand:[rootHelperApp fileSystemRepresentation]
+			   args:stopArgs
+			   output:nil];
+    }
+    @catch (NSException * e) {
+	@throw e;
+    }
+    @finally {
+    }
 }
 
 
@@ -1103,24 +1097,20 @@
 // -------------------------------------------------------------------------------
 -(void) startup
 {
-	@try {
-		const char *startArgs[] = {"start", 0L};
-		if([[AuthUtil shared] autorize] == noErr) {
-			[[AuthUtil shared] execUnixCommand:AFS_DAEMON_STARTUPSCRIPT
-										  args:startArgs
-										output:nil];
-		}
-
-	}
-	@catch (NSException * e) {
-		@throw e;
-	}
-	@finally {
-
-	}
-
-
+  NSString *rootHelperApp = [[NSBundle bundleForClass:[self class]] pathForResource:@"afshlp" ofType:@""];
+    @try {
+	const char *startArgs[] = {AFS_DAEMON_STARTUPSCRIPT, "start", 0L};
+	[[AuthUtil shared] execUnixCommand:[rootHelperApp fileSystemRepresentation]
+			   args:startArgs
+			   output:nil];
+    }
+    @catch (NSException * e) {
+	@throw e;
+    }
+    @finally {
+    }
 }
+
 // -------------------------------------------------------------------------------
 //  -(void) saveConfigurationFiles
 // -------------------------------------------------------------------------------
@@ -1166,13 +1156,6 @@
 							 encoding:  NSUTF8StringEncoding 
 								error:&err];
 		
-		// backup original file
-		if([futil startAutorization] != noErr){
-			@throw [NSException exceptionWithName:@"saveConfigurationFiles:startAutorization" 
-										   reason:kUserNotAuth
-										 userInfo:nil];
-		}
-
 		if(makeBackup) [self backupConfigurationFiles];
 
 		// install ThisCell
@@ -1220,12 +1203,6 @@
 		[self writeAfsdOption:useAfsdConfVersion?AFSD_TMP_NEW_PREFERENCE_FILE:AFSD_TMP_OLD_PREFERENCE_FILE];
 		
 		// backup original file
-		if([futil startAutorization] != noErr){
-			@throw [NSException exceptionWithName:@"AFSPropertyManager:saveCacheConfigurationFiles:startAutorization" 
-										   reason:kUserNotAuth
-										 userInfo:nil];
-		}
-		
 		if(makeBackup) {
 			//cacheinfo
 			[self backupFile:@"/etc/cacheinfo"];
@@ -1294,11 +1271,6 @@
 {	
 
 	@try{
-		if([futil startAutorization] != noErr){
-			@throw [NSException exceptionWithName:@"backupConfigurationFiles:startAutorization" 
-										   reason:kUserNotAuth
-										 userInfo:nil];
-		}
 		//This cell
 		[self backupFile:@"/etc/ThisCell"];
 	
@@ -1308,7 +1280,6 @@
 		//TheseCell
 		[self backupFile:@"/etc/TheseCells"];
 		
-		//[futil endAutorization];
 	} @catch (NSException *e) {
 		@throw e;
 	} @finally {
@@ -1329,8 +1300,6 @@
 		
 		//Check if the file at path exist
 		NSFileManager *fileManager = [NSFileManager defaultManager];
-		
-		//check if th efile exist
 		if(![fileManager fileExistsAtPath:[filePath stringByExpandingTildeInPath]]) return;
 		
 		// store the source path
diff --git a/src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib b/src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib
index 80acbdf..b1190ba 100644
--- a/src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib
+++ b/src/platform/DARWIN/AFSPreference/English.lproj/OpenAFSPreference.xib
@@ -2,30 +2,46 @@
 <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
 	<data>
 		<int key="IBDocument.SystemTarget">1050</int>
-		<string key="IBDocument.SystemVersion">10C540</string>
-		<string key="IBDocument.InterfaceBuilderVersion">762</string>
-		<string key="IBDocument.AppKitVersion">1038.25</string>
-		<string key="IBDocument.HIToolboxVersion">458.00</string>
+		<string key="IBDocument.SystemVersion">11D50d</string>
+		<string key="IBDocument.InterfaceBuilderVersion">2182</string>
+		<string key="IBDocument.AppKitVersion">1138.32</string>
+		<string key="IBDocument.HIToolboxVersion">568.00</string>
 		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
 			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
-			<string key="NS.object.0">762</string>
+			<string key="NS.object.0">2182</string>
 		</object>
-		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
-			<integer value="101"/>
+			<string>NSTabView</string>
+			<string>NSStepper</string>
+			<string>NSButton</string>
+			<string>NSCustomObject</string>
+			<string>NSTableView</string>
+			<string>NSCustomView</string>
+			<string>NSSearchField</string>
+			<string>NSTextField</string>
+			<string>NSNumberFormatter</string>
+			<string>NSSearchFieldCell</string>
+			<string>NSWindowTemplate</string>
+			<string>NSTextFieldCell</string>
+			<string>NSStepperCell</string>
+			<string>NSButtonCell</string>
+			<string>NSTableColumn</string>
+			<string>NSBox</string>
+			<string>NSView</string>
+			<string>NSScrollView</string>
+			<string>NSTabViewItem</string>
+			<string>NSTextView</string>
+			<string>NSScroller</string>
+			<string>NSTableHeaderView</string>
 		</object>
 		<object class="NSArray" key="IBDocument.PluginDependencies">
 			<bool key="EncodedWithXMLCoder">YES</bool>
 			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 		</object>
 		<object class="NSMutableDictionary" key="IBDocument.Metadata">
-			<bool key="EncodedWithXMLCoder">YES</bool>
-			<object class="NSArray" key="dict.sortedKeys" id="0">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
-			<object class="NSMutableArray" key="dict.values">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-			</object>
+			<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+			<integer value="1" key="NS.object.0"/>
 		</object>
 		<object class="NSMutableArray" key="IBDocument.RootObjects" id="84888716">
 			<bool key="EncodedWithXMLCoder">YES</bool>
@@ -48,7 +64,7 @@
 				<object class="NSMutableString" key="NSViewClass">
 					<characters key="NS.bytes">View</characters>
 				</object>
-				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<nil key="NSUserInterfaceItemIdentifier"/>
 				<object class="NSView" key="NSWindowView" id="645279396">
 					<reference key="NSNextResponder"/>
 					<int key="NSvFlags">274</int>
@@ -59,6 +75,8 @@
 							<int key="NSvFlags">256</int>
 							<string key="NSFrame">{{17, 1}, {304, 14}}</string>
 							<reference key="NSSuperview" ref="645279396"/>
+							<reference key="NSWindow"/>
+							<reference key="NSNextKeyView" ref="1047946385"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="947523856">
 								<int key="NSCellFlags">67239424</int>
@@ -97,7 +115,7 @@
 								<bool key="EncodedWithXMLCoder">YES</bool>
 								<object class="NSView" id="520583273">
 									<reference key="NSNextResponder" ref="748501112"/>
-									<int key="NSvFlags">256</int>
+									<int key="NSvFlags">274</int>
 									<object class="NSMutableArray" key="NSSubviews">
 										<bool key="EncodedWithXMLCoder">YES</bool>
 										<object class="NSButton" id="709840556">
@@ -105,6 +123,8 @@
 											<int key="NSvFlags">268</int>
 											<string key="NSFrame">{{13, 7}, {109, 28}}</string>
 											<reference key="NSSuperview" ref="520583273"/>
+											<reference key="NSWindow"/>
+											<reference key="NSNextKeyView" ref="713307252"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSButtonCell" key="NSCell" id="675447498">
 												<int key="NSCellFlags">67239424</int>
@@ -132,6 +152,8 @@
 											<int key="NSvFlags">265</int>
 											<string key="NSFrame">{{526, 9}, {21, 23}}</string>
 											<reference key="NSSuperview" ref="520583273"/>
+											<reference key="NSWindow"/>
+											<reference key="NSNextKeyView" ref="739317740"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSButtonCell" key="NSCell" id="1009755861">
 												<int key="NSCellFlags">-2080244224</int>
@@ -159,6 +181,8 @@
 											<int key="NSvFlags">268</int>
 											<string key="NSFrame">{{138, 13}, {117, 18}}</string>
 											<reference key="NSSuperview" ref="520583273"/>
+											<reference key="NSWindow"/>
+											<reference key="NSNextKeyView" ref="871603218"/>
 											<bool key="NSEnabled">YES</bool>
 											<object class="NSButtonCell" key="NSCell" id="98390178">
 												<int key="NSCellFlags">67239424</int>
@@ -184,10 +208,14 @@
 									</object>
 									<string key="NSFrame">{{1, 1}, {562, 43}}</string>
 									<reference key="NSSuperview" ref="748501112"/>
+									<reference key="NSWindow"/>
+									<reference key="NSNextKeyView" ref="709840556"/>
 								</object>
 							</object>
 							<string key="NSFrame">{{17, 423}, {564, 45}}</string>
 							<reference key="NSSuperview" ref="645279396"/>
+							<reference key="NSWindow"/>
+							<reference key="NSNextKeyView" ref="520583273"/>
 							<string key="NSOffsets">{0, 0}</string>
 							<object class="NSTextFieldCell" key="NSTitleCell">
 								<int key="NSCellFlags">67239424</int>
@@ -223,6 +251,8 @@
 							<int key="NSvFlags">274</int>
 							<string key="NSFrame">{{13, 15}, {572, 401}}</string>
 							<reference key="NSSuperview" ref="645279396"/>
+							<reference key="NSWindow"/>
+							<reference key="NSNextKeyView" ref="1020318718"/>
 							<object class="NSMutableArray" key="NSTabViewItems">
 								<bool key="EncodedWithXMLCoder">YES</bool>
 								<object class="NSTabViewItem" id="269508902">
@@ -249,6 +279,8 @@
 																<int key="NSvFlags">256</int>
 																<string key="NSFrameSize">{516, 140}</string>
 																<reference key="NSSuperview" ref="457121079"/>
+																<reference key="NSWindow"/>
+																<reference key="NSNextKeyView" ref="884311606"/>
 																<int key="NSTag">1</int>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSTableHeaderView" key="NSHeaderView" id="1048519426">
@@ -256,13 +288,14 @@
 																	<int key="NSvFlags">256</int>
 																	<string key="NSFrameSize">{516, 17}</string>
 																	<reference key="NSSuperview" ref="214413149"/>
+																	<reference key="NSWindow"/>
+																	<reference key="NSNextKeyView" ref="457121079"/>
 																	<reference key="NSTableView" ref="313963250"/>
 																</object>
-																<object class="_NSCornerView" key="NSCornerView" id="360324124">
-																	<reference key="NSNextResponder" ref="440720679"/>
+																<object class="_NSCornerView" key="NSCornerView">
+																	<nil key="NSNextResponder"/>
 																	<int key="NSvFlags">-2147483392</int>
 																	<string key="NSFrame">{{-22, 0}, {12, 17}}</string>
-																	<reference key="NSSuperview" ref="440720679"/>
 																</object>
 																<object class="NSMutableArray" key="NSTableColumns">
 																	<bool key="EncodedWithXMLCoder">YES</bool>
@@ -318,7 +351,7 @@
 																	</object>
 																</object>
 																<double key="NSRowHeight">12</double>
-																<int key="NSTvFlags">-692060160</int>
+																<int key="NSTvFlags">-155189248</int>
 																<reference key="NSDelegate"/>
 																<reference key="NSDataSource"/>
 																<int key="NSGridStyleMask">2</int>
@@ -327,10 +360,12 @@
 																<int key="NSDraggingSourceMaskForNonLocal">0</int>
 																<bool key="NSAllowsTypeSelect">YES</bool>
 																<int key="NSTableViewDraggingDestinationStyle">0</int>
+																<int key="NSTableViewGroupRowStyle">1</int>
 															</object>
 														</object>
 														<string key="NSFrame">{{1, 17}, {516, 140}}</string>
 														<reference key="NSSuperview" ref="440720679"/>
+														<reference key="NSWindow"/>
 														<reference key="NSNextKeyView" ref="313963250"/>
 														<reference key="NSDocView" ref="313963250"/>
 														<reference key="NSBGColor" ref="252569531"/>
@@ -341,6 +376,8 @@
 														<int key="NSvFlags">-2147483392</int>
 														<string key="NSFrame">{{494, 17}, {11, 80}}</string>
 														<reference key="NSSuperview" ref="440720679"/>
+														<reference key="NSWindow"/>
+														<reference key="NSNextKeyView" ref="258996751"/>
 														<int key="NSsFlags">256</int>
 														<reference key="NSTarget" ref="440720679"/>
 														<string key="NSAction">_doScroller:</string>
@@ -351,6 +388,8 @@
 														<int key="NSvFlags">-2147483392</int>
 														<string key="NSFrame">{{1, 97}, {505, 11}}</string>
 														<reference key="NSSuperview" ref="440720679"/>
+														<reference key="NSWindow"/>
+														<reference key="NSNextKeyView" ref="893552286"/>
 														<int key="NSsFlags">257</int>
 														<reference key="NSTarget" ref="440720679"/>
 														<string key="NSAction">_doScroller:</string>
@@ -365,22 +404,22 @@
 														</object>
 														<string key="NSFrame">{{1, 0}, {516, 17}}</string>
 														<reference key="NSSuperview" ref="440720679"/>
+														<reference key="NSWindow"/>
 														<reference key="NSNextKeyView" ref="1048519426"/>
 														<reference key="NSDocView" ref="1048519426"/>
 														<reference key="NSBGColor" ref="252569531"/>
 														<int key="NScvFlags">4</int>
 													</object>
-													<reference ref="360324124"/>
 												</object>
 												<string key="NSFrame">{{17, 199}, {518, 158}}</string>
 												<reference key="NSSuperview" ref="1020318718"/>
-												<reference key="NSNextKeyView" ref="457121079"/>
-												<int key="NSsFlags">562</int>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView" ref="214413149"/>
+												<int key="NSsFlags">133682</int>
 												<reference key="NSVScroller" ref="884311606"/>
 												<reference key="NSHScroller" ref="258996751"/>
 												<reference key="NSContentView" ref="457121079"/>
 												<reference key="NSHeaderClipView" ref="214413149"/>
-												<reference key="NSCornerView" ref="360324124"/>
 												<bytes key="NSScrollAmts">QSAAAEEgAABBYAAAQWAAAA</bytes>
 											</object>
 											<object class="NSButton" id="210387551">
@@ -388,6 +427,8 @@
 												<int key="NSvFlags">265</int>
 												<string key="NSFrame">{{329, 164}, {80, 28}}</string>
 												<reference key="NSSuperview" ref="1020318718"/>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView" ref="977607312"/>
 												<bool key="NSEnabled">YES</bool>
 												<object class="NSButtonCell" key="NSCell" id="327131725">
 													<int key="NSCellFlags">67239424</int>
@@ -411,6 +452,8 @@
 												<int key="NSvFlags">265</int>
 												<string key="NSFrame">{{407, 164}, {133, 28}}</string>
 												<reference key="NSSuperview" ref="1020318718"/>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView" ref="802059200"/>
 												<bool key="NSEnabled">YES</bool>
 												<object class="NSButtonCell" key="NSCell" id="73578210">
 													<int key="NSCellFlags">67239424</int>
@@ -434,6 +477,8 @@
 												<int key="NSvFlags">268</int>
 												<string key="NSFrame">{{14, 172}, {86, 18}}</string>
 												<reference key="NSSuperview" ref="1020318718"/>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView" ref="343070533"/>
 												<bool key="NSEnabled">YES</bool>
 												<object class="NSButtonCell" key="NSCell" id="428850916">
 													<int key="NSCellFlags">67239424</int>
@@ -458,7 +503,7 @@
 													<bool key="EncodedWithXMLCoder">YES</bool>
 													<object class="NSView" id="1000204505">
 														<reference key="NSNextResponder" ref="184192603"/>
-														<int key="NSvFlags">256</int>
+														<int key="NSvFlags">274</int>
 														<object class="NSMutableArray" key="NSSubviews">
 															<bool key="EncodedWithXMLCoder">YES</bool>
 															<object class="NSButton" id="478533800">
@@ -466,6 +511,8 @@
 																<int key="NSvFlags">268</int>
 																<string key="NSFrame">{{5, 32}, {75, 18}}</string>
 																<reference key="NSSuperview" ref="1000204505"/>
+																<reference key="NSWindow"/>
+																<reference key="NSNextKeyView" ref="541208829"/>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSButtonCell" key="NSCell" id="989004902">
 																	<int key="NSCellFlags">67239424</int>
@@ -488,6 +535,8 @@
 																<int key="NSvFlags">268</int>
 																<string key="NSFrame">{{5, 12}, {167, 18}}</string>
 																<reference key="NSSuperview" ref="1000204505"/>
+																<reference key="NSWindow"/>
+																<reference key="NSNextKeyView" ref="210387551"/>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSButtonCell" key="NSCell" id="95048095">
 																	<int key="NSCellFlags">67239424</int>
@@ -510,6 +559,8 @@
 																<int key="NSvFlags">268</int>
 																<string key="NSFrame">{{5, 52}, {170, 18}}</string>
 																<reference key="NSSuperview" ref="1000204505"/>
+																<reference key="NSWindow"/>
+																<reference key="NSNextKeyView" ref="478533800"/>
 																<bool key="NSEnabled">YES</bool>
 																<object class="NSButtonCell" key="NSCell" id="855912809">
 																	<int key="NSCellFlags">67239424</int>
@@ -530,10 +581,14 @@
 														</object>
 														<string key="NSFrame">{{1, 1}, {193, 78}}</string>
 														<reference key="NSSuperview" ref="184192603"/>
+														<reference key="NSWindow"/>
+														<reference key="NSNextKeyView" ref="239701474"/>
 													</object>
 												</object>
 												<string key="NSFrame">{{113, 97}, {195, 94}}</string>
 												<reference key="NSSuperview" ref="1020318718"/>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView" ref="1000204505"/>
 												<string key="NSOffsets">{0, 0}</string>
 												<object class="NSTextFieldCell" key="NSTitleCell">
 													<int key="NSCellFlags">67239424</int>
@@ -557,6 +612,8 @@
 												<int key="NSvFlags">268</int>
 												<string key="NSFrame">{{14, 152}, {96, 18}}</string>
 												<reference key="NSSuperview" ref="1020318718"/>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView" ref="184192603"/>
 												<bool key="NSEnabled">YES</bool>
 												<object class="NSButtonCell" key="NSCell" id="237101992">
 													<int key="NSCellFlags">67239424</int>
@@ -574,9 +631,21 @@
 													<int key="NSPeriodicInterval">25</int>
 												</object>
 											</object>
+											<object class="NSCustomView" id="802059200">
+												<reference key="NSNextResponder" ref="1020318718"/>
+												<int key="NSvFlags">268</int>
+												<string key="NSFrame">{{3, 3}, {400, 40}}</string>
+												<reference key="NSSuperview" ref="1020318718"/>
+												<reference key="NSWindow"/>
+												<reference key="NSNextKeyView"/>
+												<string key="NSReuseIdentifierKey">_NS:9</string>
+												<string key="NSClassName">SFAuthorizationView</string>
+											</object>
 										</object>
 										<string key="NSFrame">{{10, 25}, {552, 363}}</string>
 										<reference key="NSSuperview" ref="739317740"/>
+										<reference key="NSWindow"/>
+										<reference key="NSNextKeyView" ref="440720679"/>
 									</object>
 									<string key="NSLabel">Tokens</string>
 									<reference key="NSColor" ref="568311573"/>
@@ -632,7 +701,7 @@
 																	<string>AXDescription</string>
 																	<string>NSAccessibilityEncodedAttributesValueType</string>
 																</object>
-																<object class="NSMutableArray" key="dict.values">
+																<object class="NSArray" key="dict.values">
 																	<bool key="EncodedWithXMLCoder">YES</bool>
 																	<string>cancel</string>
 																	<integer value="1"/>
@@ -926,7 +995,7 @@
 																<reference key="NSBackgroundColor" ref="400556243"/>
 																<reference key="NSGridColor" ref="850792713"/>
 																<double key="NSRowHeight">15</double>
-																<int key="NSTvFlags">1522532352</int>
+																<int key="NSTvFlags">2059403264</int>
 																<reference key="NSDelegate"/>
 																<reference key="NSDataSource"/>
 																<int key="NSGridStyleMask">1</int>
@@ -935,6 +1004,7 @@
 																<int key="NSDraggingSourceMaskForNonLocal">0</int>
 																<bool key="NSAllowsTypeSelect">YES</bool>
 																<int key="NSTableViewDraggingDestinationStyle">0</int>
+																<int key="NSTableViewGroupRowStyle">1</int>
 															</object>
 														</object>
 														<string key="NSFrame">{{1, 17}, {516, 271}}</string>
@@ -984,12 +1054,11 @@
 												<string key="NSFrame">{{15, 41}, {518, 289}}</string>
 												<reference key="NSSuperview" ref="1069727156"/>
 												<reference key="NSNextKeyView" ref="259172039"/>
-												<int key="NSsFlags">562</int>
+												<int key="NSsFlags">133682</int>
 												<reference key="NSVScroller" ref="177605134"/>
 												<reference key="NSHScroller" ref="172641834"/>
 												<reference key="NSContentView" ref="259172039"/>
 												<reference key="NSHeaderClipView" ref="281754774"/>
-												<reference key="NSCornerView" ref="772760699"/>
 												<bytes key="NSScrollAmts">QSAAAEEgAABBiAAAQYgAAA</bytes>
 											</object>
 											<object class="NSTextField" id="747536303">
@@ -1032,7 +1101,7 @@
 													<bool key="EncodedWithXMLCoder">YES</bool>
 													<object class="NSView" id="1006532054">
 														<reference key="NSNextResponder" ref="1056952440"/>
-														<int key="NSvFlags">256</int>
+														<int key="NSvFlags">274</int>
 														<object class="NSMutableArray" key="NSSubviews">
 															<bool key="EncodedWithXMLCoder">YES</bool>
 															<object class="NSTextField" id="748314809">
@@ -1075,7 +1144,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveFormat</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<integer value="1"/>
 																				<integer value="1040"/>
@@ -1096,12 +1165,12 @@
 																		<nil key="NS.nil"/>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<object class="NSDictionary" key="NSAttributes" id="383448102">
+																			<object class="NSDictionary" key="NSAttributes" id="571560357">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
-																				<reference key="dict.sortedKeys" ref="0"/>
-																				<object class="NSMutableArray" key="dict.values">
+																				<object class="NSArray" key="dict.sortedKeys" id="0">
 																					<bool key="EncodedWithXMLCoder">YES</bool>
 																				</object>
+																				<reference key="dict.values" ref="0"/>
 																			</object>
 																		</object>
 																		<real value="1000" key="NS.min"/>
@@ -1159,7 +1228,7 @@
 																				<string>minimumIntegerDigits</string>
 																				<string>positiveFormat</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<integer value="1"/>
 																				<integer value="1040"/>
@@ -1177,7 +1246,7 @@
 																		<nil key="NS.nil"/>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="100" key="NS.min"/>
 																		<reference key="NS.max" ref="139642944"/>
@@ -1239,7 +1308,7 @@
 																				<string>minimumIntegerDigits</string>
 																				<string>positiveFormat</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<integer value="1"/>
 																				<integer value="1040"/>
@@ -1258,7 +1327,7 @@
 																		<nil key="NS.nil"/>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<integer value="1" key="NS.min"/>
 																		<reference key="NS.max" ref="139642944"/>
@@ -1363,7 +1432,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveFormat</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<real value="0.0"/>
 																				<real value="0.0"/>
@@ -1387,7 +1456,7 @@
 																		<nil key="NS.nil"/>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="10" key="NS.min"/>
 																		<reference key="NS.max" ref="139642944"/>
@@ -1482,7 +1551,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveFormat</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<integer value="1"/>
 																				<integer value="1040"/>
@@ -1501,7 +1570,7 @@
 																		<nil key="NS.nil"/>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="10000" key="NS.min"/>
 																		<reference key="NS.max" ref="139642944"/>
@@ -1766,7 +1835,7 @@
 																<reference key="NSBackgroundColor" ref="400556243"/>
 																<reference key="NSGridColor" ref="850792713"/>
 																<double key="NSRowHeight">17</double>
-																<int key="NSTvFlags">-557842432</int>
+																<int key="NSTvFlags">-20971520</int>
 																<reference key="NSDelegate"/>
 																<reference key="NSDataSource"/>
 																<int key="NSGridStyleMask">2</int>
@@ -1775,6 +1844,7 @@
 																<int key="NSDraggingSourceMaskForNonLocal">0</int>
 																<bool key="NSAllowsTypeSelect">YES</bool>
 																<int key="NSTableViewDraggingDestinationStyle">0</int>
+																<int key="NSTableViewGroupRowStyle">1</int>
 															</object>
 														</object>
 														<string key="NSFrame">{{1, 17}, {501, 283}}</string>
@@ -1823,7 +1893,7 @@
 												<string key="NSFrame">{{17, 41}, {518, 316}}</string>
 												<reference key="NSSuperview" ref="786994103"/>
 												<reference key="NSNextKeyView" ref="229139620"/>
-												<int key="NSsFlags">50</int>
+												<int key="NSsFlags">133170</int>
 												<reference key="NSVScroller" ref="497462431"/>
 												<reference key="NSHScroller" ref="145484441"/>
 												<reference key="NSContentView" ref="229139620"/>
@@ -1913,7 +1983,7 @@
 													<bool key="EncodedWithXMLCoder">YES</bool>
 													<object class="NSView" id="660074200">
 														<reference key="NSNextResponder" ref="731215349"/>
-														<int key="NSvFlags">256</int>
+														<int key="NSvFlags">274</int>
 														<object class="NSMutableArray" key="NSSubviews">
 															<bool key="EncodedWithXMLCoder">YES</bool>
 															<object class="NSTextField" id="628152029">
@@ -1965,7 +2035,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveInfinitySymbol</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<boolean value="YES"/>
 																				<integer value="1040"/>
@@ -1990,7 +2060,7 @@
 																		</object>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="60" key="NS.min"/>
 																		<reference key="NS.max" ref="139642944"/>
@@ -2057,7 +2127,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveInfinitySymbol</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<boolean value="YES"/>
 																				<integer value="1040"/>
@@ -2082,7 +2152,7 @@
 																		</object>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="60" key="NS.min"/>
 																		<reference key="NS.max" ref="139642944"/>
@@ -2183,7 +2253,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveInfinitySymbol</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<boolean value="YES"/>
 																				<integer value="1040"/>
@@ -2206,7 +2276,7 @@
 																		</object>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="0.0" key="NS.min"/>
 																		<real value="30" key="NS.max"/>
@@ -2269,7 +2339,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveInfinitySymbol</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<boolean value="YES"/>
 																				<integer value="1040"/>
@@ -2292,7 +2362,7 @@
 																		</object>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="0.0" key="NS.min"/>
 																		<real value="24" key="NS.max"/>
@@ -2355,7 +2425,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveInfinitySymbol</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<boolean value="YES"/>
 																				<integer value="1040"/>
@@ -2378,7 +2448,7 @@
 																		</object>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="0.0" key="NS.min"/>
 																		<real value="60" key="NS.max"/>
@@ -2473,7 +2543,7 @@
 																				<string>numberStyle</string>
 																				<string>positiveInfinitySymbol</string>
 																			</object>
-																			<object class="NSMutableArray" key="dict.values">
+																			<object class="NSArray" key="dict.values">
 																				<bool key="EncodedWithXMLCoder">YES</bool>
 																				<boolean value="YES"/>
 																				<integer value="1040"/>
@@ -2496,7 +2566,7 @@
 																		</object>
 																		<object class="NSAttributedString" key="NS.nan">
 																			<string key="NSString">NaN</string>
-																			<reference key="NSAttributes" ref="383448102"/>
+																			<reference key="NSAttributes" ref="571560357"/>
 																		</object>
 																		<real value="0.0" key="NS.min"/>
 																		<real value="60" key="NS.max"/>
@@ -2582,6 +2652,8 @@
 							<int key="NSvFlags">289</int>
 							<string key="NSFrame">{{323, 3}, {258, 11}}</string>
 							<reference key="NSSuperview" ref="645279396"/>
+							<reference key="NSWindow"/>
+							<reference key="NSNextKeyView"/>
 							<bool key="NSEnabled">YES</bool>
 							<object class="NSTextFieldCell" key="NSCell" id="999146642">
 								<int key="NSCellFlags">68288064</int>
@@ -2600,9 +2672,12 @@
 					</object>
 					<string key="NSFrameSize">{595, 486}</string>
 					<reference key="NSSuperview"/>
+					<reference key="NSWindow"/>
+					<reference key="NSNextKeyView" ref="748501112"/>
 				</object>
-				<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
-				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+				<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
+				<bool key="NSWindowIsRestorable">YES</bool>
 			</object>
 			<object class="NSWindowTemplate" id="52789773">
 				<int key="NSWindowStyleMask">9</int>
@@ -2616,7 +2691,7 @@
 				<object class="NSMutableString" key="NSViewClass">
 					<characters key="NS.bytes">View</characters>
 				</object>
-				<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<nil key="NSUserInterfaceItemIdentifier"/>
 				<object class="NSView" key="NSWindowView" id="1017822711">
 					<nil key="NSNextResponder"/>
 					<int key="NSvFlags">256</int>
@@ -2635,7 +2710,7 @@
 										<object class="NSTextView" id="297493656">
 											<reference key="NSNextResponder" ref="853671207"/>
 											<int key="NSvFlags">2322</int>
-											<string key="NSFrameSize">{662, 14}</string>
+											<string key="NSFrameSize">{673, 14}</string>
 											<reference key="NSSuperview" ref="853671207"/>
 											<object class="NSTextContainer" key="NSTextContainer" id="512204159">
 												<object class="NSLayoutManager" key="NSLayoutManager">
@@ -2653,11 +2728,11 @@
 													<nil key="NSDelegate"/>
 												</object>
 												<reference key="NSTextView" ref="297493656"/>
-												<double key="NSWidth">662</double>
+												<double key="NSWidth">673</double>
 												<int key="NSTCFlags">1</int>
 											</object>
 											<object class="NSTextViewSharedData" key="NSSharedData">
-												<int key="NSFlags">2913</int>
+												<int key="NSFlags">67111777</int>
 												<int key="NSTextCheckingTypes">0</int>
 												<nil key="NSMarkedAttributes"/>
 												<reference key="NSBackgroundColor" ref="400556243"/>
@@ -2668,7 +2743,7 @@
 														<string>NSBackgroundColor</string>
 														<string>NSColor</string>
 													</object>
-													<object class="NSMutableArray" key="dict.values">
+													<object class="NSArray" key="dict.values">
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<object class="NSColor">
 															<int key="NSColorSpace">6</int>
@@ -2692,7 +2767,7 @@
 														<string>NSColor</string>
 														<string>NSUnderline</string>
 													</object>
-													<object class="NSMutableArray" key="dict.values">
+													<object class="NSArray" key="dict.values">
 														<bool key="EncodedWithXMLCoder">YES</bool>
 														<object class="NSColor">
 															<int key="NSColorSpace">1</int>
@@ -2702,21 +2777,40 @@
 													</object>
 												</object>
 												<nil key="NSDefaultParagraphStyle"/>
+												<nil key="NSTextFinder"/>
+												<int key="NSPreferredTextFinderStyle">0</int>
 											</object>
 											<int key="NSTVFlags">6</int>
-											<string key="NSMaxSize">{1337, 1e+07}</string>
+											<string key="NSMaxSize">{1337, 10000000}</string>
 											<string key="NSMinize">{114, 0}</string>
 											<nil key="NSDelegate"/>
 										</object>
 									</object>
-									<string key="NSFrame">{{1, 1}, {662, 423}}</string>
+									<string key="NSFrame">{{1, 1}, {673, 423}}</string>
 									<reference key="NSSuperview" ref="935020490"/>
 									<reference key="NSNextKeyView" ref="297493656"/>
 									<reference key="NSDocView" ref="297493656"/>
 									<reference key="NSBGColor" ref="400556243"/>
 									<object class="NSCursor" key="NSCursor">
-										<string key="NSHotSpot">{4, -5}</string>
-										<int key="NSCursorType">1</int>
+										<string key="NSHotSpot">{4, 5}</string>
+										<object class="NSImage" key="NSImage">
+											<int key="NSImageFlags">79691776</int>
+											<object class="NSArray" key="NSReps">
+												<bool key="EncodedWithXMLCoder">YES</bool>
+												<object class="NSArray">
+													<bool key="EncodedWithXMLCoder">YES</bool>
+													<integer value="5"/>
+													<object class="NSURL">
+														<nil key="NS.base"/>
+														<string key="NS.relative">file://localhost/Applications/Xcode.app/Contents/SharedFrameworks/DVTKit.framework/Resources/DVTIbeamCursor.tiff</string>
+													</object>
+												</object>
+											</object>
+											<object class="NSColor" key="NSColor">
+												<int key="NSColorSpace">3</int>
+												<bytes key="NSWhite">MCAwAA</bytes>
+											</object>
+										</object>
 									</object>
 									<int key="NScvFlags">4</int>
 								</object>
@@ -2745,7 +2839,7 @@
 							<string key="NSFrame">{{20, 40}, {675, 425}}</string>
 							<reference key="NSSuperview" ref="1017822711"/>
 							<reference key="NSNextKeyView" ref="853671207"/>
-							<int key="NSsFlags">18</int>
+							<int key="NSsFlags">133138</int>
 							<reference key="NSVScroller" ref="11642274"/>
 							<reference key="NSHScroller" ref="574894181"/>
 							<reference key="NSContentView" ref="853671207"/>
@@ -2776,8 +2870,9 @@
 					</object>
 					<string key="NSFrameSize">{715, 485}</string>
 				</object>
-				<string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string>
-				<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+				<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
+				<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
+				<bool key="NSWindowIsRestorable">YES</bool>
 			</object>
 			<object class="NSCustomObject" id="176554930">
 				<string key="NSClassName">InfoController</string>
@@ -2876,30 +2971,6 @@
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
-						<string key="label">infoPanel</string>
-						<reference key="source" ref="176554930"/>
-						<reference key="destination" ref="52789773"/>
-					</object>
-					<int key="connectionID">226</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">texEditInfo</string>
-						<reference key="source" ref="176554930"/>
-						<reference key="destination" ref="297493656"/>
-					</object>
-					<int key="connectionID">227</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">closePanel:</string>
-						<reference key="source" ref="176554930"/>
-						<reference key="destination" ref="729692979"/>
-					</object>
-					<int key="connectionID">228</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
 						<string key="label">afsCommanderView</string>
 						<reference key="source" ref="773588579"/>
 						<reference key="destination" ref="645279396"/>
@@ -2972,14 +3043,6 @@
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
-						<string key="label">delegate</string>
-						<reference key="source" ref="739317740"/>
-						<reference key="destination" ref="773588579"/>
-					</object>
-					<int key="connectionID">669</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
 						<string key="label">textSearchField</string>
 						<reference key="source" ref="773588579"/>
 						<reference key="destination" ref="530233415"/>
@@ -2995,14 +3058,6 @@
 					<int key="connectionID">817</int>
 				</object>
 				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">delegate</string>
-						<reference key="source" ref="530233415"/>
-						<reference key="destination" ref="773588579"/>
-					</object>
-					<int key="connectionID">886</int>
-				</object>
-				<object class="IBConnectionRecord">
 					<object class="IBActionConnection" key="connection">
 						<string key="label">startStopAfs:</string>
 						<reference key="source" ref="773588579"/>
@@ -3252,22 +3307,6 @@
 				</object>
 				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
-						<string key="label">dataSource</string>
-						<reference key="source" ref="1029505942"/>
-						<reference key="destination" ref="773588579"/>
-					</object>
-					<int key="connectionID">2060</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
-						<string key="label">delegate</string>
-						<reference key="source" ref="1029505942"/>
-						<reference key="destination" ref="773588579"/>
-					</object>
-					<int key="connectionID">2061</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBOutletConnection" key="connection">
 						<string key="label">buttonRemoveLink</string>
 						<reference key="source" ref="773588579"/>
 						<reference key="destination" ref="635503948"/>
@@ -3323,70 +3362,6 @@
 					<int key="connectionID">2093</int>
 				</object>
 				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntegerValueFrom:</string>
-						<reference key="source" ref="724013147"/>
-						<reference key="destination" ref="719182296"/>
-					</object>
-					<int key="connectionID">2104</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntegerValueFrom:</string>
-						<reference key="source" ref="791385502"/>
-						<reference key="destination" ref="338319881"/>
-					</object>
-					<int key="connectionID">2114</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntegerValueFrom:</string>
-						<reference key="source" ref="826525177"/>
-						<reference key="destination" ref="564887063"/>
-					</object>
-					<int key="connectionID">2120</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntegerValueFrom:</string>
-						<reference key="source" ref="338319881"/>
-						<reference key="destination" ref="791385502"/>
-					</object>
-					<int key="connectionID">2127</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntValueFrom:</string>
-						<reference key="source" ref="719182296"/>
-						<reference key="destination" ref="724013147"/>
-					</object>
-					<int key="connectionID">2128</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntValueFrom:</string>
-						<reference key="source" ref="564887063"/>
-						<reference key="destination" ref="826525177"/>
-					</object>
-					<int key="connectionID">2129</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntegerValueFrom:</string>
-						<reference key="source" ref="681255345"/>
-						<reference key="destination" ref="724827539"/>
-					</object>
-					<int key="connectionID">2140</int>
-				</object>
-				<object class="IBConnectionRecord">
-					<object class="IBActionConnection" key="connection">
-						<string key="label">takeIntValueFrom:</string>
-						<reference key="source" ref="724827539"/>
-						<reference key="destination" ref="681255345"/>
-					</object>
-					<int key="connectionID">2141</int>
-				</object>
-				<object class="IBConnectionRecord">
 					<object class="IBOutletConnection" key="connection">
 						<string key="label">nsTextFieldKrb5RenewTimeD</string>
 						<reference key="source" ref="773588579"/>
@@ -3450,80 +3425,208 @@
 					</object>
 					<int key="connectionID">2149</int>
 				</object>
-			</object>
-			<object class="IBMutableOrderedSet" key="objectRecords">
-				<object class="NSArray" key="orderedObjects">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-					<object class="IBObjectRecord">
-						<int key="objectID">0</int>
-						<reference key="object" ref="0"/>
-						<reference key="children" ref="84888716"/>
-						<nil key="parent"/>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">authView</string>
+						<reference key="source" ref="773588579"/>
+						<reference key="destination" ref="802059200"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-2</int>
-						<reference key="object" ref="773588579"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">File's Owner</string>
+					<int key="connectionID">2151</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="739317740"/>
+						<reference key="destination" ref="773588579"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-1</int>
-						<reference key="object" ref="270520968"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">First Responder</string>
+					<int key="connectionID">669</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="530233415"/>
+						<reference key="destination" ref="773588579"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">-3</int>
-						<reference key="object" ref="173116405"/>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">Application</string>
+					<int key="connectionID">886</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">infoPanel</string>
+						<reference key="source" ref="176554930"/>
+						<reference key="destination" ref="52789773"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">12</int>
-						<reference key="object" ref="61231707"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="645279396"/>
-						</object>
-						<reference key="parent" ref="0"/>
-						<string key="objectName">PrefPane</string>
+					<int key="connectionID">226</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">texEditInfo</string>
+						<reference key="source" ref="176554930"/>
+						<reference key="destination" ref="297493656"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">6</int>
-						<reference key="object" ref="645279396"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1047946385"/>
-							<reference ref="415603882"/>
-							<reference ref="739317740"/>
-							<reference ref="748501112"/>
-						</object>
-						<reference key="parent" ref="61231707"/>
+					<int key="connectionID">227</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">closePanel:</string>
+						<reference key="source" ref="176554930"/>
+						<reference key="destination" ref="729692979"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">101</int>
-						<reference key="object" ref="739317740"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="269508902"/>
-							<reference ref="443722606"/>
-							<reference ref="584361947"/>
-							<reference ref="126070858"/>
-							<reference ref="585584503"/>
-						</object>
-						<reference key="parent" ref="645279396"/>
+					<int key="connectionID">228</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">dataSource</string>
+						<reference key="source" ref="1029505942"/>
+						<reference key="destination" ref="773588579"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">104</int>
-						<reference key="object" ref="269508902"/>
-						<object class="NSMutableArray" key="children">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<reference ref="1020318718"/>
-						</object>
-						<reference key="parent" ref="739317740"/>
+					<int key="connectionID">2060</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBOutletConnection" key="connection">
+						<string key="label">delegate</string>
+						<reference key="source" ref="1029505942"/>
+						<reference key="destination" ref="773588579"/>
 					</object>
-					<object class="IBObjectRecord">
-						<int key="objectID">105</int>
+					<int key="connectionID">2061</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntValueFrom:</string>
+						<reference key="source" ref="719182296"/>
+						<reference key="destination" ref="724013147"/>
+					</object>
+					<int key="connectionID">2128</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntegerValueFrom:</string>
+						<reference key="source" ref="724013147"/>
+						<reference key="destination" ref="719182296"/>
+					</object>
+					<int key="connectionID">2104</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntegerValueFrom:</string>
+						<reference key="source" ref="338319881"/>
+						<reference key="destination" ref="791385502"/>
+					</object>
+					<int key="connectionID">2127</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntegerValueFrom:</string>
+						<reference key="source" ref="791385502"/>
+						<reference key="destination" ref="338319881"/>
+					</object>
+					<int key="connectionID">2114</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntValueFrom:</string>
+						<reference key="source" ref="564887063"/>
+						<reference key="destination" ref="826525177"/>
+					</object>
+					<int key="connectionID">2129</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntegerValueFrom:</string>
+						<reference key="source" ref="826525177"/>
+						<reference key="destination" ref="564887063"/>
+					</object>
+					<int key="connectionID">2120</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntValueFrom:</string>
+						<reference key="source" ref="724827539"/>
+						<reference key="destination" ref="681255345"/>
+					</object>
+					<int key="connectionID">2141</int>
+				</object>
+				<object class="IBConnectionRecord">
+					<object class="IBActionConnection" key="connection">
+						<string key="label">takeIntegerValueFrom:</string>
+						<reference key="source" ref="681255345"/>
+						<reference key="destination" ref="724827539"/>
+					</object>
+					<int key="connectionID">2140</int>
+				</object>
+			</object>
+			<object class="IBMutableOrderedSet" key="objectRecords">
+				<object class="NSArray" key="orderedObjects">
+					<bool key="EncodedWithXMLCoder">YES</bool>
+					<object class="IBObjectRecord">
+						<int key="objectID">0</int>
+						<reference key="object" ref="0"/>
+						<reference key="children" ref="84888716"/>
+						<nil key="parent"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-2</int>
+						<reference key="object" ref="773588579"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">File's Owner</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-1</int>
+						<reference key="object" ref="270520968"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">First Responder</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">-3</int>
+						<reference key="object" ref="173116405"/>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">Application</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">12</int>
+						<reference key="object" ref="61231707"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="645279396"/>
+						</object>
+						<reference key="parent" ref="0"/>
+						<string key="objectName">PrefPane</string>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">6</int>
+						<reference key="object" ref="645279396"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1047946385"/>
+							<reference ref="415603882"/>
+							<reference ref="739317740"/>
+							<reference ref="748501112"/>
+						</object>
+						<reference key="parent" ref="61231707"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">101</int>
+						<reference key="object" ref="739317740"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="269508902"/>
+							<reference ref="443722606"/>
+							<reference ref="584361947"/>
+							<reference ref="126070858"/>
+							<reference ref="585584503"/>
+						</object>
+						<reference key="parent" ref="645279396"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">104</int>
+						<reference key="object" ref="269508902"/>
+						<object class="NSMutableArray" key="children">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<reference ref="1020318718"/>
+						</object>
+						<reference key="parent" ref="739317740"/>
+					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">105</int>
 						<reference key="object" ref="1020318718"/>
 						<object class="NSMutableArray" key="children">
 							<bool key="EncodedWithXMLCoder">YES</bool>
@@ -3533,6 +3636,7 @@
 							<reference ref="893552286"/>
 							<reference ref="343070533"/>
 							<reference ref="210387551"/>
+							<reference ref="802059200"/>
 						</object>
 						<reference key="parent" ref="269508902"/>
 					</object>
@@ -4864,86 +4968,54 @@
 						<reference key="object" ref="426972560"/>
 						<reference key="parent" ref="724827539"/>
 					</object>
+					<object class="IBObjectRecord">
+						<int key="objectID">2150</int>
+						<reference key="object" ref="802059200"/>
+						<reference key="parent" ref="1020318718"/>
+					</object>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="flattenedProperties">
 				<bool key="EncodedWithXMLCoder">YES</bool>
 				<object class="NSArray" key="dict.sortedKeys">
 					<bool key="EncodedWithXMLCoder">YES</bool>
+					<string>-1.IBPluginDependency</string>
+					<string>-2.IBPluginDependency</string>
 					<string>-3.IBPluginDependency</string>
-					<string>-3.ImportedFromIB2</string>
 					<string>101.IBPluginDependency</string>
-					<string>101.ImportedFromIB2</string>
 					<string>104.IBPluginDependency</string>
-					<string>104.ImportedFromIB2</string>
 					<string>105.IBPluginDependency</string>
-					<string>105.ImportedFromIB2</string>
 					<string>1103.IBPluginDependency</string>
-					<string>1103.ImportedFromIB2</string>
 					<string>1107.IBPluginDependency</string>
-					<string>1107.ImportedFromIB2</string>
 					<string>1111.IBPluginDependency</string>
-					<string>1111.ImportedFromIB2</string>
 					<string>1122.IBPluginDependency</string>
-					<string>1122.ImportedFromIB2</string>
 					<string>1199.IBPluginDependency</string>
-					<string>1199.ImportedFromIB2</string>
-					<string>12.IBEditorWindowLastContentRect</string>
 					<string>12.IBPluginDependency</string>
-					<string>12.IBViewEditorWindowController.showingBoundsRectangles</string>
-					<string>12.IBViewEditorWindowController.showingLayoutRectangles</string>
 					<string>12.IBWindowTemplateEditedContentRect</string>
-					<string>12.ImportedFromIB2</string>
-					<string>12.windowTemplate.hasMinSize</string>
-					<string>12.windowTemplate.maxSize</string>
-					<string>12.windowTemplate.minSize</string>
 					<string>1203.IBPluginDependency</string>
-					<string>1203.ImportedFromIB2</string>
 					<string>1204.IBPluginDependency</string>
-					<string>1204.ImportedFromIB2</string>
 					<string>1207.IBPluginDependency</string>
-					<string>1207.ImportedFromIB2</string>
 					<string>1209.IBPluginDependency</string>
-					<string>1209.ImportedFromIB2</string>
 					<string>1280.IBPluginDependency</string>
-					<string>1280.ImportedFromIB2</string>
 					<string>1422.IBPluginDependency</string>
-					<string>1422.ImportedFromIB2</string>
 					<string>1426.IBPluginDependency</string>
-					<string>1426.ImportedFromIB2</string>
 					<string>1715.IBPluginDependency</string>
-					<string>1715.ImportedFromIB2</string>
 					<string>177.IBPluginDependency</string>
-					<string>177.ImportedFromIB2</string>
 					<string>178.IBPluginDependency</string>
-					<string>178.ImportedFromIB2</string>
 					<string>1787.IBPluginDependency</string>
-					<string>1787.ImportedFromIB2</string>
 					<string>1789.IBPluginDependency</string>
-					<string>1789.ImportedFromIB2</string>
 					<string>179.IBPluginDependency</string>
-					<string>179.ImportedFromIB2</string>
 					<string>180.IBPluginDependency</string>
-					<string>180.ImportedFromIB2</string>
 					<string>181.IBPluginDependency</string>
-					<string>181.ImportedFromIB2</string>
 					<string>182.IBPluginDependency</string>
-					<string>182.ImportedFromIB2</string>
 					<string>183.IBPluginDependency</string>
-					<string>183.ImportedFromIB2</string>
 					<string>184.IBPluginDependency</string>
-					<string>184.ImportedFromIB2</string>
 					<string>1845.IBPluginDependency</string>
-					<string>1845.ImportedFromIB2</string>
 					<string>185.IBPluginDependency</string>
-					<string>185.ImportedFromIB2</string>
 					<string>186.IBPluginDependency</string>
-					<string>186.ImportedFromIB2</string>
 					<string>1902.IBPluginDependency</string>
-					<string>1902.ImportedFromIB2</string>
 					<string>1960.IBAttributePlaceholdersKey</string>
 					<string>1960.IBPluginDependency</string>
-					<string>1960.ImportedFromIB2</string>
 					<string>1964.IBPluginDependency</string>
 					<string>1965.IBPluginDependency</string>
 					<string>1966.IBPluginDependency</string>
@@ -4980,7 +5052,6 @@
 					<string>1998.IBPluginDependency</string>
 					<string>1999.IBPluginDependency</string>
 					<string>200.IBPluginDependency</string>
-					<string>200.ImportedFromIB2</string>
 					<string>2000.IBPluginDependency</string>
 					<string>2000.IBShouldRemoveOnLegacySave</string>
 					<string>2001.IBPluginDependency</string>
@@ -5034,7 +5105,6 @@
 					<string>2066.IBPluginDependency</string>
 					<string>2067.IBPluginDependency</string>
 					<string>207.IBPluginDependency</string>
-					<string>207.ImportedFromIB2</string>
 					<string>2071.IBPluginDependency</string>
 					<string>2072.IBPluginDependency</string>
 					<string>2073.IBAttributePlaceholdersKey</string>
@@ -5048,13 +5118,8 @@
 					<string>2077.IBPluginDependency</string>
 					<string>2078.IBPluginDependency</string>
 					<string>2079.IBPluginDependency</string>
-					<string>208.IBEditorWindowLastContentRect</string>
 					<string>208.IBPluginDependency</string>
 					<string>208.IBWindowTemplateEditedContentRect</string>
-					<string>208.ImportedFromIB2</string>
-					<string>208.windowTemplate.hasMinSize</string>
-					<string>208.windowTemplate.maxSize</string>
-					<string>208.windowTemplate.minSize</string>
 					<string>2080.IBNumberFormatterBehaviorMetadataKey</string>
 					<string>2080.IBNumberFormatterLocalizesFormatMetadataKey</string>
 					<string>2080.IBPluginDependency</string>
@@ -5063,7 +5128,6 @@
 					<string>2087.IBPluginDependency</string>
 					<string>2088.IBPluginDependency</string>
 					<string>209.IBPluginDependency</string>
-					<string>209.ImportedFromIB2</string>
 					<string>2100.IBPluginDependency</string>
 					<string>2101.IBPluginDependency</string>
 					<string>2102.IBAttributePlaceholdersKey</string>
@@ -5103,148 +5167,84 @@
 					<string>2138.IBPluginDependency</string>
 					<string>2139.IBPluginDependency</string>
 					<string>214.IBPluginDependency</string>
-					<string>214.ImportedFromIB2</string>
 					<string>215.IBPluginDependency</string>
-					<string>215.ImportedFromIB2</string>
+					<string>2150.IBPluginDependency</string>
 					<string>216.IBPluginDependency</string>
-					<string>216.ImportedFromIB2</string>
-					<string>224.ImportedFromIB2</string>
+					<string>224.IBPluginDependency</string>
 					<string>265.IBPluginDependency</string>
-					<string>265.ImportedFromIB2</string>
 					<string>337.IBPluginDependency</string>
-					<string>337.ImportedFromIB2</string>
 					<string>338.IBPluginDependency</string>
-					<string>338.ImportedFromIB2</string>
 					<string>339.IBPluginDependency</string>
-					<string>339.ImportedFromIB2</string>
 					<string>340.IBPluginDependency</string>
-					<string>340.ImportedFromIB2</string>
 					<string>342.IBPluginDependency</string>
-					<string>342.ImportedFromIB2</string>
 					<string>344.IBAttributePlaceholdersKey</string>
 					<string>344.IBPluginDependency</string>
-					<string>344.ImportedFromIB2</string>
 					<string>345.IBPluginDependency</string>
-					<string>345.ImportedFromIB2</string>
 					<string>348.IBAttributePlaceholdersKey</string>
 					<string>348.IBPluginDependency</string>
-					<string>348.ImportedFromIB2</string>
 					<string>349.IBPluginDependency</string>
-					<string>349.ImportedFromIB2</string>
 					<string>352.IBPluginDependency</string>
-					<string>352.ImportedFromIB2</string>
 					<string>400.IBPluginDependency</string>
-					<string>400.ImportedFromIB2</string>
 					<string>402.IBPluginDependency</string>
-					<string>402.ImportedFromIB2</string>
 					<string>404.IBAttributePlaceholdersKey</string>
 					<string>404.IBPluginDependency</string>
-					<string>404.ImportedFromIB2</string>
 					<string>406.IBPluginDependency</string>
-					<string>406.ImportedFromIB2</string>
 					<string>408.IBAttributePlaceholdersKey</string>
 					<string>408.IBPluginDependency</string>
-					<string>408.ImportedFromIB2</string>
 					<string>411.IBNumberFormatterLocalizesFormatMetadataKey</string>
 					<string>411.IBPluginDependency</string>
-					<string>411.ImportedFromIB2</string>
 					<string>413.IBPluginDependency</string>
-					<string>413.ImportedFromIB2</string>
 					<string>415.IBAttributePlaceholdersKey</string>
 					<string>415.IBPluginDependency</string>
-					<string>415.ImportedFromIB2</string>
 					<string>417.IBNumberFormatterLocalizesFormatMetadataKey</string>
 					<string>417.IBPluginDependency</string>
-					<string>417.ImportedFromIB2</string>
 					<string>425.IBPluginDependency</string>
-					<string>425.ImportedFromIB2</string>
 					<string>475.IBPluginDependency</string>
-					<string>475.ImportedFromIB2</string>
 					<string>6.IBPluginDependency</string>
-					<string>6.ImportedFromIB2</string>
 					<string>740.IBNumberFormatterLocalizesFormatMetadataKey</string>
 					<string>740.IBPluginDependency</string>
-					<string>740.ImportedFromIB2</string>
 					<string>741.IBNumberFormatterLocalizesFormatMetadataKey</string>
 					<string>741.IBPluginDependency</string>
-					<string>741.ImportedFromIB2</string>
 					<string>742.IBNumberFormatterLocalizesFormatMetadataKey</string>
 					<string>742.IBPluginDependency</string>
-					<string>742.ImportedFromIB2</string>
 				</object>
-				<object class="NSMutableArray" key="dict.values">
+				<object class="NSArray" key="dict.values">
 					<bool key="EncodedWithXMLCoder">YES</bool>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
-					<string>{{208, 366}, {595, 486}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<boolean value="NO"/>
-					<boolean value="NO"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{208, 366}, {595, 486}}</string>
-					<integer value="1"/>
-					<boolean value="NO"/>
-					<string>{3.40282e+38, 3.40282e+38}</string>
-					<string>{0, 0}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<object class="NSMutableDictionary">
 						<string key="NS.key.0">ToolTip</string>
 						<object class="IBToolTipAttribute" key="NS.object.0">
@@ -5254,7 +5254,6 @@
 						</object>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5299,7 +5298,6 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5353,7 +5351,6 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<object class="NSMutableDictionary">
@@ -5381,13 +5378,8 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<string>{{0, 510}, {715, 485}}</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>{{0, 510}, {715, 485}}</string>
-					<integer value="1"/>
-					<boolean value="NO"/>
-					<string>{3.40282e+38, 3.40282e+38}</string>
-					<string>{0, 0}</string>
 					<integer value="1040"/>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
@@ -5403,7 +5395,6 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<object class="NSMutableDictionary">
@@ -5471,24 +5462,16 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
 					<object class="NSMutableDictionary">
 						<string key="NS.key.0">ToolTip</string>
 						<object class="IBToolTipAttribute" key="NS.object.0">
@@ -5498,9 +5481,7 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 						</object>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<object class="NSMutableDictionary">
 						<string key="NS.key.0">ToolTip</string>
 						<object class="IBToolTipAttribute" key="NS.object.0">
@@ -5510,15 +5491,10 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 						</object>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<object class="NSMutableDictionary">
 						<string key="NS.key.0">ToolTip</string>
 						<object class="IBToolTipAttribute" key="NS.object.0">
@@ -5528,9 +5504,7 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 						</object>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<object class="NSMutableDictionary">
 						<string key="NS.key.0">ToolTip</string>
 						<object class="IBToolTipAttribute" key="NS.object.0">
@@ -5540,12 +5514,9 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 						</object>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<object class="NSMutableDictionary">
 						<string key="NS.key.0">ToolTip</string>
 						<object class="IBToolTipAttribute" key="NS.object.0">
@@ -5555,44 +5526,32 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 						</object>
 					</object>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 					<boolean value="YES"/>
 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
-					<integer value="1"/>
 				</object>
 			</object>
 			<object class="NSMutableDictionary" key="unlocalizedProperties">
 				<bool key="EncodedWithXMLCoder">YES</bool>
 				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
+				<reference key="dict.values" ref="0"/>
 			</object>
 			<nil key="activeLocalization"/>
 			<object class="NSMutableDictionary" key="localizations">
 				<bool key="EncodedWithXMLCoder">YES</bool>
 				<reference key="dict.sortedKeys" ref="0"/>
-				<object class="NSMutableArray" key="dict.values">
-					<bool key="EncodedWithXMLCoder">YES</bool>
-				</object>
+				<reference key="dict.values" ref="0"/>
 			</object>
 			<nil key="sourceID"/>
-			<int key="maxID">2149</int>
+			<int key="maxID">2151</int>
 		</object>
 		<object class="IBClassDescriber" key="IBDocument.Classes">
 			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -5628,7 +5587,7 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>tableViewLinkPerformClick:</string>
 							<string>unlog:</string>
 						</object>
-						<object class="NSMutableArray" key="dict.values">
+						<object class="NSArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>id</string>
 							<string>id</string>
@@ -5655,53 +5614,170 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>id</string>
 						</object>
 					</object>
-					<object class="NSMutableDictionary" key="outlets">
+					<object class="NSMutableDictionary" key="actionInfosByName">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>addCellButton</string>
-							<string>afsCommanderView</string>
-							<string>afsDB</string>
-							<string>afsDefaultCellLabel</string>
-							<string>afsMenucheckBox</string>
-							<string>afsRootMountPoint</string>
-							<string>afsVersionLabel</string>
-							<string>aklogCredentialAtLoginTime</string>
-							<string>backgrounderActivationCheck</string>
-							<string>buttonAddLink</string>
-							<string>buttonRemoveLink</string>
-							<string>cacheDimension</string>
-							<string>cellIpButton</string>
-							<string>cellList</string>
-							<string>checkButtonAfsAtBootTime</string>
-							<string>checkEnableLink</string>
-							<string>credentialCommander</string>
-							<string>credentialSheet</string>
-							<string>dCacheDim</string>
-							<string>daemonNumber</string>
-							<string>dynRoot</string>
-							<string>groupsBox</string>
-							<string>infoController</string>
-							<string>infoSheet</string>
-							<string>installKRB5AuthAtLoginButton</string>
-							<string>ipConfControllerCommander</string>
-							<string>ipConfigurationSheet</string>
-							<string>labelSaveResult</string>
-							<string>lyncCreationSheet</string>
-							<string>lynkCreationController</string>
-							<string>nVolEntry</string>
-							<string>nsButtonEnableDisableKrb5RenewCheck</string>
-							<string>nsStepperKrb5RenewTimeD</string>
-							<string>nsStepperKrb5RenewTimeH</string>
-							<string>nsStepperKrb5RenewTimeM</string>
-							<string>nsStepperKrb5RenewTimeS</string>
-							<string>nsTextFieldKrb5RenewCheckIntervall</string>
-							<string>nsTextFieldKrb5RenewTimeD</string>
-							<string>nsTextFieldKrb5RenewTimeH</string>
-							<string>nsTextFieldKrb5RenewTimeM</string>
-							<string>nsTextFieldKrb5RenewTimeS</string>
-							<string>nsTextFieldKrb5SecToExpireDateForRenew</string>
-							<string>removeCellButton</string>
+							<string>addLink:</string>
+							<string>addRemoveCell:</string>
+							<string>afsMenuActivationEvent:</string>
+							<string>afsStartupSwitchEvent:</string>
+							<string>aklogSwitchEvent:</string>
+							<string>credentialAtLoginTimeEvent:</string>
+							<string>enableDisableKrb5RenewCheck:</string>
+							<string>enableLink:</string>
+							<string>getNewToken:</string>
+							<string>info:</string>
+							<string>krb5KredentialAtLoginTimeEvent:</string>
+							<string>krb5RenewParamChange:</string>
+							<string>manageBackgrounderActivation:</string>
+							<string>refreshConfiguration:</string>
+							<string>removeLink:</string>
+							<string>saveCacheManagerParam:</string>
+							<string>saveConfiguration:</string>
+							<string>searchCellTextEvent:</string>
+							<string>showCellIP:</string>
+							<string>startStopAfs:</string>
+							<string>tableDoubleAction:</string>
+							<string>tableViewLinkPerformClick:</string>
+							<string>unlog:</string>
+						</object>
+						<object class="NSArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">addLink:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">addRemoveCell:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">afsMenuActivationEvent:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">afsStartupSwitchEvent:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">aklogSwitchEvent:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">credentialAtLoginTimeEvent:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">enableDisableKrb5RenewCheck:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">enableLink:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">getNewToken:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">info:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">krb5KredentialAtLoginTimeEvent:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">krb5RenewParamChange:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">manageBackgrounderActivation:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">refreshConfiguration:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">removeLink:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveCacheManagerParam:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">saveConfiguration:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">searchCellTextEvent:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">showCellIP:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">startStopAfs:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">tableDoubleAction:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">tableViewLinkPerformClick:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">unlog:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
+					<object class="NSMutableDictionary" key="outlets">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>addCellButton</string>
+							<string>afsCommanderView</string>
+							<string>afsDB</string>
+							<string>afsDefaultCellLabel</string>
+							<string>afsMenucheckBox</string>
+							<string>afsRootMountPoint</string>
+							<string>afsVersionLabel</string>
+							<string>aklogCredentialAtLoginTime</string>
+							<string>authView</string>
+							<string>backgrounderActivationCheck</string>
+							<string>buttonAddLink</string>
+							<string>buttonRemoveLink</string>
+							<string>cacheDimension</string>
+							<string>cellIpButton</string>
+							<string>cellList</string>
+							<string>checkButtonAfsAtBootTime</string>
+							<string>checkEnableLink</string>
+							<string>dCacheDim</string>
+							<string>daemonNumber</string>
+							<string>dynRoot</string>
+							<string>groupsBox</string>
+							<string>installKRB5AuthAtLoginButton</string>
+							<string>lynkCreationController</string>
+							<string>nVolEntry</string>
+							<string>nsButtonEnableDisableKrb5RenewCheck</string>
+							<string>nsStepperKrb5RenewTimeD</string>
+							<string>nsStepperKrb5RenewTimeH</string>
+							<string>nsStepperKrb5RenewTimeM</string>
+							<string>nsStepperKrb5RenewTimeS</string>
+							<string>nsTextFieldKrb5RenewCheckIntervall</string>
+							<string>nsTextFieldKrb5RenewTimeD</string>
+							<string>nsTextFieldKrb5RenewTimeH</string>
+							<string>nsTextFieldKrb5RenewTimeM</string>
+							<string>nsTextFieldKrb5RenewTimeS</string>
+							<string>nsTextFieldKrb5SecToExpireDateForRenew</string>
+							<string>removeCellButton</string>
 							<string>saveConfigurationButton</string>
 							<string>startStopButton</string>
 							<string>statCacheEntry</string>
@@ -5714,7 +5790,7 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>useAklogCheck</string>
 							<string>verbose</string>
 						</object>
-						<object class="NSMutableArray" key="dict.values">
+						<object class="NSArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>NSControl</string>
 							<string>NSView</string>
@@ -5724,6 +5800,7 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>NSTextField</string>
 							<string>NSTextField</string>
 							<string>NSButton</string>
+							<string>SFAuthorizationView</string>
 							<string>NSButton</string>
 							<string>NSButton</string>
 							<string>NSButton</string>
@@ -5732,19 +5809,11 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>NSTableView</string>
 							<string>NSButton</string>
 							<string>NSButton</string>
-							<string>id</string>
-							<string>id</string>
 							<string>NSTextField</string>
 							<string>NSTextField</string>
 							<string>NSButton</string>
 							<string>NSBox</string>
-							<string>id</string>
-							<string>id</string>
 							<string>NSButton</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
-							<string>id</string>
 							<string>LynkCreationController</string>
 							<string>NSTextField</string>
 							<string>NSButton</string>
@@ -5772,38 +5841,253 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>NSButton</string>
 						</object>
 					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">AFSCommanderPref.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">AFSCommanderPref</string>
-					<string key="superclassName">NSPreferencePane</string>
-					<object class="NSMutableDictionary" key="outlets">
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSArray" key="dict.sortedKeys">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>cellPopupButton</string>
-							<string>getTokenButton</string>
+							<string>addCellButton</string>
+							<string>afsCommanderView</string>
+							<string>afsDB</string>
+							<string>afsDefaultCellLabel</string>
+							<string>afsMenucheckBox</string>
+							<string>afsRootMountPoint</string>
+							<string>afsVersionLabel</string>
+							<string>aklogCredentialAtLoginTime</string>
+							<string>authView</string>
+							<string>backgrounderActivationCheck</string>
+							<string>buttonAddLink</string>
+							<string>buttonRemoveLink</string>
+							<string>cacheDimension</string>
+							<string>cellIpButton</string>
+							<string>cellList</string>
+							<string>checkButtonAfsAtBootTime</string>
+							<string>checkEnableLink</string>
+							<string>dCacheDim</string>
+							<string>daemonNumber</string>
+							<string>dynRoot</string>
+							<string>groupsBox</string>
+							<string>installKRB5AuthAtLoginButton</string>
+							<string>lynkCreationController</string>
+							<string>nVolEntry</string>
+							<string>nsButtonEnableDisableKrb5RenewCheck</string>
+							<string>nsStepperKrb5RenewTimeD</string>
+							<string>nsStepperKrb5RenewTimeH</string>
+							<string>nsStepperKrb5RenewTimeM</string>
+							<string>nsStepperKrb5RenewTimeS</string>
+							<string>nsTextFieldKrb5RenewCheckIntervall</string>
+							<string>nsTextFieldKrb5RenewTimeD</string>
+							<string>nsTextFieldKrb5RenewTimeH</string>
+							<string>nsTextFieldKrb5RenewTimeM</string>
+							<string>nsTextFieldKrb5RenewTimeS</string>
+							<string>nsTextFieldKrb5SecToExpireDateForRenew</string>
+							<string>removeCellButton</string>
+							<string>saveConfigurationButton</string>
+							<string>startStopButton</string>
+							<string>statCacheEntry</string>
+							<string>tableViewLink</string>
+							<string>textFieldDevInfoLabel</string>
+							<string>textSearchField</string>
+							<string>tokensButton</string>
+							<string>tokensTable</string>
+							<string>unlogButton</string>
+							<string>useAklogCheck</string>
+							<string>verbose</string>
 						</object>
-						<object class="NSMutableArray" key="dict.values">
+						<object class="NSArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>NSPopUpButton</string>
-							<string>NSPopUpButton</string>
+							<object class="IBToOneOutletInfo">
+								<string key="name">addCellButton</string>
+								<string key="candidateClassName">NSControl</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">afsCommanderView</string>
+								<string key="candidateClassName">NSView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">afsDB</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">afsDefaultCellLabel</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">afsMenucheckBox</string>
+								<string key="candidateClassName">NSControl</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">afsRootMountPoint</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">afsVersionLabel</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">aklogCredentialAtLoginTime</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">authView</string>
+								<string key="candidateClassName">SFAuthorizationView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">backgrounderActivationCheck</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">buttonAddLink</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">buttonRemoveLink</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">cacheDimension</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">cellIpButton</string>
+								<string key="candidateClassName">NSControl</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">cellList</string>
+								<string key="candidateClassName">NSTableView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">checkButtonAfsAtBootTime</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">checkEnableLink</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">dCacheDim</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">daemonNumber</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">dynRoot</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">groupsBox</string>
+								<string key="candidateClassName">NSBox</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">installKRB5AuthAtLoginButton</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">lynkCreationController</string>
+								<string key="candidateClassName">LynkCreationController</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nVolEntry</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsButtonEnableDisableKrb5RenewCheck</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsStepperKrb5RenewTimeD</string>
+								<string key="candidateClassName">NSStepper</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsStepperKrb5RenewTimeH</string>
+								<string key="candidateClassName">NSStepper</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsStepperKrb5RenewTimeM</string>
+								<string key="candidateClassName">NSStepper</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsStepperKrb5RenewTimeS</string>
+								<string key="candidateClassName">NSStepper</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsTextFieldKrb5RenewCheckIntervall</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsTextFieldKrb5RenewTimeD</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsTextFieldKrb5RenewTimeH</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsTextFieldKrb5RenewTimeM</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsTextFieldKrb5RenewTimeS</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">nsTextFieldKrb5SecToExpireDateForRenew</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">removeCellButton</string>
+								<string key="candidateClassName">NSControl</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">saveConfigurationButton</string>
+								<string key="candidateClassName">NSControl</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">startStopButton</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">statCacheEntry</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">tableViewLink</string>
+								<string key="candidateClassName">NSTableView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">textFieldDevInfoLabel</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">textSearchField</string>
+								<string key="candidateClassName">NSSearchField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">tokensButton</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">tokensTable</string>
+								<string key="candidateClassName">NSTableView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">unlogButton</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">useAklogCheck</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">verbose</string>
+								<string key="candidateClassName">NSButton</string>
+							</object>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">FirstResponder</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/AFSCommanderPref.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
@@ -5813,30 +6097,16 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 						<string key="NS.key.0">closePanel:</string>
 						<string key="NS.object.0">id</string>
 					</object>
-					<object class="NSMutableDictionary" key="outlets">
-						<bool key="EncodedWithXMLCoder">YES</bool>
-						<object class="NSArray" key="dict.sortedKeys">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>infoPanel</string>
-							<string>texEditInfo</string>
-						</object>
-						<object class="NSMutableArray" key="dict.values">
-							<bool key="EncodedWithXMLCoder">YES</bool>
-							<string>id</string>
-							<string>id</string>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<string key="NS.key.0">closePanel:</string>
+						<object class="IBActionInfo" key="NS.object.0">
+							<string key="name">closePanel:</string>
+							<string key="candidateClassName">id</string>
 						</object>
 					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">InfoController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">InfoController</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
+						<string key="minorKey">./Classes/InfoController.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
@@ -5850,13 +6120,37 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>save:</string>
 							<string>selectLinkDest:</string>
 						</object>
-						<object class="NSMutableArray" key="dict.values">
+						<object class="NSArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>id</string>
 							<string>id</string>
 							<string>id</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="actionInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>cancell:</string>
+							<string>save:</string>
+							<string>selectLinkDest:</string>
+						</object>
+						<object class="NSArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBActionInfo">
+								<string key="name">cancell:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">save:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+							<object class="IBActionInfo">
+								<string key="name">selectLinkDest:</string>
+								<string key="candidateClassName">id</string>
+							</object>
+						</object>
+					</object>
 					<object class="NSMutableDictionary" key="outlets">
 						<bool key="EncodedWithXMLCoder">YES</bool>
 						<object class="NSArray" key="dict.sortedKeys">
@@ -5865,402 +6159,40 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>textFieldLinkDestPath</string>
 							<string>textfieldLinkName</string>
 						</object>
-						<object class="NSMutableArray" key="dict.values">
+						<object class="NSArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>NSPanel</string>
 							<string>NSTextField</string>
 							<string>NSTextField</string>
 						</object>
 					</object>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>lynkCreationSheet</string>
+							<string>textFieldLinkDestPath</string>
+							<string>textfieldLinkName</string>
+						</object>
+						<object class="NSArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">lynkCreationSheet</string>
+								<string key="candidateClassName">NSPanel</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">textFieldLinkDestPath</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">textfieldLinkName</string>
+								<string key="candidateClassName">NSTextField</string>
+							</object>
+						</object>
+					</object>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
 						<string key="majorKey">IBProjectSource</string>
-						<string key="minorKey">LynkCreationController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSPreferencePane</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBUserSource</string>
-						<string key="minorKey"/>
-					</object>
-				</object>
-			</object>
-			<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
-				<bool key="EncodedWithXMLCoder">YES</bool>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSActionCell</string>
-					<string key="superclassName">NSCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<string key="superclassName">NSResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="204676479">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="621097933">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSApplicationScripting.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="104909186">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSColorPanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSHelpManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSPageLayout.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSApplication</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSUserInterfaceItemSearching.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSBox</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSBox.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSButton</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSButtonCell</string>
-					<string key="superclassName">NSActionCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSCell</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSControl</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="41055177">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSFormatter</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSMenu</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="734906022">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSNumberFormatter</string>
-					<string key="superclassName">NSFormatter</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSNumberFormatter.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSAccessibility.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="204676479"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="621097933"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="104909186"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="41055177"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDictionaryController.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDragging.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSFontManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSFontPanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSKeyValueBinding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<reference key="sourceIdentifier" ref="734906022"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSNibLoading.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSPasteboard.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSSavePanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="616595462">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSToolbarItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier" id="354787859">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSPanel</string>
-					<string key="superclassName">NSWindow</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSPanel.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSPopUpButton</string>
-					<string key="superclassName">NSButton</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSPopUpButton.h</string>
+						<string key="minorKey">./Classes/LynkCreationController.h</string>
 					</object>
 				</object>
 				<object class="IBPartialClassDescription">
@@ -6275,7 +6207,7 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>_lastKeyView</string>
 							<string>_window</string>
 						</object>
-						<object class="NSMutableArray" key="dict.values">
+						<object class="NSArray" key="dict.values">
 							<bool key="EncodedWithXMLCoder">YES</bool>
 							<string>NSView</string>
 							<string>NSView</string>
@@ -6283,189 +6215,38 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 							<string>NSWindow</string>
 						</object>
 					</object>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">PreferencePanes.framework/Headers/NSPreferencePane.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSInterfaceStyle.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSResponder</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSScrollView</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSScrollView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSScroller</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSScroller.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSSearchField</string>
-					<string key="superclassName">NSTextField</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSSearchField.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSSearchFieldCell</string>
-					<string key="superclassName">NSTextFieldCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSSearchFieldCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSStepper</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSStepper.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSStepperCell</string>
-					<string key="superclassName">NSActionCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSStepperCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTabView</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTabView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTabViewItem</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTabViewItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTableColumn</string>
-					<string key="superclassName">NSObject</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTableColumn.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTableHeaderView</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTableHeaderView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTableView</string>
-					<string key="superclassName">NSControl</string>
-					<reference key="sourceIdentifier" ref="616595462"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSText</string>
-					<string key="superclassName">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSText.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTextField</string>
-					<string key="superclassName">NSControl</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTextFieldCell</string>
-					<string key="superclassName">NSActionCell</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSTextView</string>
-					<string key="superclassName">NSText</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSTextView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSClipView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSRulerView.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSView</string>
-					<string key="superclassName">NSResponder</string>
-					<reference key="sourceIdentifier" ref="354787859"/>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSWindow</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSDrawer.h</string>
-					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSWindow</string>
-					<string key="superclassName">NSResponder</string>
-					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSWindow.h</string>
+					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
+						<bool key="EncodedWithXMLCoder">YES</bool>
+						<object class="NSArray" key="dict.sortedKeys">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<string>_firstKeyView</string>
+							<string>_initialKeyView</string>
+							<string>_lastKeyView</string>
+							<string>_window</string>
+						</object>
+						<object class="NSArray" key="dict.values">
+							<bool key="EncodedWithXMLCoder">YES</bool>
+							<object class="IBToOneOutletInfo">
+								<string key="name">_firstKeyView</string>
+								<string key="candidateClassName">NSView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">_initialKeyView</string>
+								<string key="candidateClassName">NSView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">_lastKeyView</string>
+								<string key="candidateClassName">NSView</string>
+							</object>
+							<object class="IBToOneOutletInfo">
+								<string key="name">_window</string>
+								<string key="candidateClassName">NSWindow</string>
+							</object>
+						</object>
 					</object>
-				</object>
-				<object class="IBPartialClassDescription">
-					<string key="className">NSWindow</string>
 					<object class="IBClassDescriptionSource" key="sourceIdentifier">
-						<string key="majorKey">IBFrameworkSource</string>
-						<string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string>
+						<string key="majorKey">IBProjectSource</string>
+						<string key="minorKey">./Classes/NSPreferencePane.h</string>
 					</object>
 				</object>
 			</object>
@@ -6481,7 +6262,6 @@ Zm9yIGRlYnVnZ2luZyBhcyBpdCBwcmludHMgYSBMT1Qgb2YgaW5mb3JtYXRpb24uCg</string>
 			<integer value="3000" key="NS.object.0"/>
 		</object>
 		<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
-		<string key="IBDocument.LastKnownRelativeProjectPath">../OpenAFS.xcodeproj</string>
 		<int key="IBDocument.defaultPropertyAccessControl">3</int>
 		<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
 			<string key="NS.key.0">NSSwitch</string>
diff --git a/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m b/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m
index 3042397..70a50ab 100644
--- a/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m
+++ b/src/platform/DARWIN/AFSPreference/IpConfiguratorCommander.m
@@ -16,8 +16,8 @@
 // -------------------------------------------------------------------------------
 - (void)awakeFromNib
 {
-	[((NSTableView*)tableViewCellIP) setDelegate:self];
-	[((NSTableView*)tableViewCellIP) setDataSource:self];
+	[tableViewCellIP setDelegate:self];
+	[tableViewCellIP setDataSource:self];
 }
 
 // -------------------------------------------------------------------------------
@@ -44,8 +44,8 @@
 - (void) commitModify
 {
 	//store the cell name
-	[cellElement setCellName:[((NSControl*) textFieldCellName) stringValue]];
-	[cellElement setCellComment:[((NSControl*) textFieldComment) stringValue]];
+	[cellElement setCellName:[textFieldCellName stringValue]];
+	[cellElement setCellComment:[textFieldComment stringValue]];
 	[bkIPArray removeAllObjects];
 	[bkIPArray setArray:workIPArray];
 	[workIPArray release];
@@ -81,8 +81,8 @@
 	[workIPArray addObject:ip];
 	[ip release];
 	currentSelectedIP = ip;
-	[((NSTableView*)tableViewCellIP) reloadData];
-	[((NSTableView *) tableViewCellIP)  scrollRowToVisible:[[cellElement getIp] count]-1];
+	[tableViewCellIP reloadData];
+	[tableViewCellIP scrollRowToVisible:[[cellElement getIp] count]-1];
 }
 
 // -------------------------------------------------------------------------------
@@ -90,10 +90,10 @@
 // -------------------------------------------------------------------------------
 - (IBAction) cancelIP:(id) sender
 {
-	[workIPArray removeObjectAtIndex:[((NSTableView*)tableViewCellIP) selectedRow]];
-	[((NSTableView*)tableViewCellIP) deselectAll:nil];
+	[workIPArray removeObjectAtIndex:[tableViewCellIP selectedRow]];
+	[tableViewCellIP deselectAll:nil];
 	[self manageTableSelection:-1];
-	[((NSTableView*)tableViewCellIP) reloadData];
+	[tableViewCellIP reloadData];
 
 }
 
@@ -110,9 +110,9 @@
 // -------------------------------------------------------------------------------
 - (void) loadValueFromCellIPClass
 {
-	[((NSTextField*)textFieldCellName) setStringValue:[cellElement getCellName]]; 
-	[((NSTextField*)textFieldComment) setStringValue:[cellElement getCellComment]]; 
-	[((NSTableView*)tableViewCellIP) reloadData];
+	[textFieldCellName setStringValue:[cellElement getCellName]];
+	[textFieldComment setStringValue:[cellElement getCellComment]];
+	[tableViewCellIP reloadData];
 }
 
 // -------------------------------------------------------------------------------
@@ -121,7 +121,7 @@
 - (void) manageTableSelection:(int)row
 {
 	//[((NSControl*) modifyButton) setEnabled:row>=0];
-	[((NSControl*) deleteButton) setEnabled:row>=0];
+	[deleteButton setEnabled:row>=0];
 }
 
 - (id) getPanel
@@ -194,7 +194,7 @@
    forTableColumn:(NSTableColumn *)aCol row:(int)aRow
 {
 	CellIp *ipElement =  (CellIp*)[workIPArray objectAtIndex:aRow];
-	switch([((NSNumber*)[aCol identifier]) intValue])
+	switch([[aCol identifier] intValue])
 	{
 		case 1:
 			[ipElement setCellIp:[aData description]];
diff --git a/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj b/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj
index c18a959..0183719 100644
--- a/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj
+++ b/src/platform/DARWIN/AFSPreference/OpenAFS.xcodeproj/project.pbxproj
@@ -877,6 +877,7 @@
 				"ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)";
 				"ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)";
 				"ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)";
+				"ARCHS[sdk=macosx10.8]" = "$(ARCHS_STANDARD_32_64_BIT)";
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
 				GCC_ENABLE_OBJC_GC = supported;
@@ -897,6 +898,7 @@
 				"ARCHS[sdk=macosx10.5]" = "$(ARCHS_STANDARD_32_BIT)";
 				"ARCHS[sdk=macosx10.6]" = "$(ARCHS_STANDARD_32_64_BIT)";
 				"ARCHS[sdk=macosx10.7]" = "$(ARCHS_STANDARD_32_64_BIT)";
+				"ARCHS[sdk=macosx10.8]" = "$(ARCHS_STANDARD_32_64_BIT)";
 				GCC_C_LANGUAGE_STANDARD = gnu99;
 				GCC_ENABLE_OBJC_EXCEPTIONS = YES;
 				GCC_ENABLE_OBJC_GC = supported;
diff --git a/src/platform/DARWIN/AFSPreference/PListManager.h b/src/platform/DARWIN/AFSPreference/PListManager.h
index c1fb051..44f90bf 100644
--- a/src/platform/DARWIN/AFSPreference/PListManager.h
+++ b/src/platform/DARWIN/AFSPreference/PListManager.h
@@ -40,7 +40,7 @@
  @abstract   Enable or disable the system to get kerberos ticket at login time
  @discussion <#(comprehensive description)#>
  */
-+(void) krb5TiketAtLoginTime:(BOOL)enable;
++(void) krb5TiketAtLoginTime:(BOOL)enable helper:(NSString *)helper;
 
 /*!
  @method     checkKrb5AtLoginTimeLaunchdEnable
@@ -80,9 +80,7 @@
  @abstract   exec the launchctl command on a particular plist job
  @discussion <#(comprehensive description)#>
  */
-+(void) launchctlStringCommand:(NSString*)operation
-						option:(NSArray*)option
-					 plistName:(NSString*)plistName;
++(void) launchctlStringCommandAuth:(NSString*)operation option:(NSArray*)option plistName:(NSString*)plistName helper:(NSString *)helper withAuthRef:(AuthorizationRef)authRef;
 /*!
  @method     launchdJobState
  @abstract   check is a job has been submitted to launchd
diff --git a/src/platform/DARWIN/AFSPreference/PListManager.m b/src/platform/DARWIN/AFSPreference/PListManager.m
index 8497870..977f962 100644
--- a/src/platform/DARWIN/AFSPreference/PListManager.m
+++ b/src/platform/DARWIN/AFSPreference/PListManager.m
@@ -17,7 +17,8 @@
 // -------------------------------------------------------------------------------
 //  krb5TiketAtLoginTime:
 // -------------------------------------------------------------------------------
-+(void) krb5TiketAtLoginTime:(BOOL)enable{
++(void) krb5TiketAtLoginTime:(BOOL)enable helper:(NSString *)helper
+{
 	NSData					*plistData = nil;
 	NSString				*error = nil;
 	NSString				*toRemove = nil;
@@ -112,16 +113,15 @@
 	
 	//now we can move the file
 	futil = [[FileUtil alloc] init];
-	if([futil startAutorization] == noErr) {
-		if(![[NSFileManager defaultManager] fileExistsAtPath:AUTH_FILE_BK]) {
-			//bk file doesn't exist so make it
-			[futil autorizedCopy:AUTH_FILE toPath:AUTH_FILE_BK];
-		}
-		// chmod on tmp file
-		[futil autorizedChown:TMP_FILE owner:@"root" group:@"wheel"];
-		//move the file 
-		[futil autorizedMoveFile:TMP_FILE toPath:AUTH_FILE_DIR];
+	if(![[NSFileManager defaultManager] fileExistsAtPath:AUTH_FILE_BK]) {
+	    //bk file doesn't exist so make it
+	    [futil autorizedCopy:AUTH_FILE toPath:AUTH_FILE_BK];
 	}
+	// chmod on tmp file
+	[futil autorizedChown:TMP_FILE owner:@"root" group:@"wheel"];
+	//move the file
+	[futil autorizedMoveFile:TMP_FILE toPath:AUTH_FILE_DIR];
+
 	[futil release];
 }
 
@@ -223,9 +223,9 @@
 //  installAfsStartupLaunchdFile:
 // -------------------------------------------------------------------------------
 +(void) manageAfsStartupLaunchdFile:(BOOL)enable 
-				   afsStartupScript:(NSString*)afsStartupScript 
-						afsBasePath:(NSString*)afsBasePath 
-						   afsdPath:(NSString*)afsdPath {
+		   afsStartupScript:(NSString*)afsStartupScript
+			afsBasePath:(NSString*)afsBasePath
+			   afsdPath:(NSString*)afsdPath {
 	NSData				*plistData = nil;
 	NSMutableDictionary *launchdDic = nil;
 	NSString			*error = nil;
@@ -288,9 +288,10 @@
 //  launchctlCommand:
 // -------------------------------------------------------------------------------
 +(void) launchctlCommand:(BOOL)enable
-			  userDomain:(BOOL)userDomain
-					   option:(NSArray*)option 
-					plistName:(NSString*)plistName {
+	      userDomain:(BOOL)userDomain
+		  option:(NSArray*)option
+	       plistName:(NSString*)plistName
+{
 	NSMutableArray *argument = [NSMutableArray array];
 	NSMutableString *commandPath = [NSMutableString stringWithCapacity:0];
 	NSUInteger searchDomain = userDomain?NSUserDomainMask:NSSystemDomainMask;
@@ -307,17 +308,21 @@
 	[commandPath appendFormat:@"/LaunchAgents/%@", plistName];
 	
 	[argument addObject:commandPath];
+
 	//exec the command
-	[TaskUtil executeTaskSearchingPath:@"launchctl"  
-								  args:argument];
+	[TaskUtil executeTask:@"/bin/launchctl"
+		  arguments:argument];
 }
 
 // -------------------------------------------------------------------------------
 //  launchctlCommand:
 // -------------------------------------------------------------------------------
-+(void) launchctlStringCommand:(NSString*)operation
-				  option:(NSArray*)option
-			   plistName:(NSString*)plistName {
++(void) launchctlStringCommandAuth:(NSString *)operation
+			    option:(NSArray *)option
+			 plistName:(NSString *)plistName
+			    helper:(NSString *)helper
+		       withAuthRef:(AuthorizationRef)authRef
+{
 	NSMutableArray *argument = [NSMutableArray array];
 
 	//set the load unload
@@ -330,8 +335,8 @@
 	[argument addObject: plistName];
 
 	//exec the command
-	[TaskUtil executeTaskSearchingPath:@"launchctl"
-								  args:argument];
+	[TaskUtil executeTaskWithAuth:@"/bin/launchctl"
+		  arguments:argument helper:helper withAuthRef:authRef];
 }
 
 // -------------------------------------------------------------------------------
diff --git a/src/platform/DARWIN/AFSPreference/TaskUtil.h b/src/platform/DARWIN/AFSPreference/TaskUtil.h
index b7fc7ec..459b68e 100644
--- a/src/platform/DARWIN/AFSPreference/TaskUtil.h
+++ b/src/platform/DARWIN/AFSPreference/TaskUtil.h
@@ -16,4 +16,5 @@
 +(NSString*) executeTaskSearchingPath:(NSString*)unixCommand args:(NSArray*)args;
 +(NSString*) executeTask:(NSString*) taskName arguments:(NSArray *)args;
 +(int) executeTaskWithAuth:(NSString*) taskName arguments:(NSArray *)args authExtForm:(NSData*)auth;
++(int) executeTaskWithAuth:(NSString*) taskName arguments:(NSArray *)args helper:(NSString *)helper withAuthRef:(AuthorizationRef)authRef;
 @end
diff --git a/src/platform/DARWIN/AFSPreference/TaskUtil.m b/src/platform/DARWIN/AFSPreference/TaskUtil.m
index c27ee8f..3c94524 100644
--- a/src/platform/DARWIN/AFSPreference/TaskUtil.m
+++ b/src/platform/DARWIN/AFSPreference/TaskUtil.m
@@ -7,6 +7,7 @@
 //
 
 #import "TaskUtil.h"
+#import "AuthUtil.h"
 
 
 @implementation TaskUtil
@@ -75,6 +76,36 @@
 // -------------------------------------------------------------------------------
 //  executeTask:
 // -------------------------------------------------------------------------------
++(int) executeTaskWithAuth:(NSString*) taskName arguments:(NSArray *)args helper:(NSString *)helper withAuthRef:(AuthorizationRef)authRef {
+    const char *rootHelperApp = [helper fileSystemRepresentation];
+    OSStatus status;
+    AuthorizationFlags flags = kAuthorizationFlagDefaults;
+    int count = [args count];
+    char **myArguments = calloc(count + 2, sizeof(char *));
+    int i=0;
+
+    myArguments[0] = strdup([taskName UTF8String]);
+    for(i=0;i < count;i++) {
+	const char *string = [[args objectAtIndex:i] UTF8String];
+	if(!string)
+	    break;
+	myArguments[1+i] = strdup(string);
+    }
+    myArguments[1+i] = NULL;
+
+    // should use SMJobBless but we need to sign things...
+    status = AuthorizationExecuteWithPrivileges(authRef, rootHelperApp, flags, myArguments, NULL);
+
+    i = 0;
+    while (myArguments[i] != NULL) {
+        free(myArguments[i]);
+        i++;
+    }
+
+    free(myArguments);
+    return status;
+}
+
 +(int) executeTaskWithAuth:(NSString*) taskName arguments:(NSArray *)args authExtForm:(NSData*)auth {
 	NSString *result = nil;
 	int status = 0;
diff --git a/src/platform/DARWIN/AFSPreference/afshlp.m b/src/platform/DARWIN/AFSPreference/afshlp.m
index ad59d94..5d2f702 100644
--- a/src/platform/DARWIN/AFSPreference/afshlp.m
+++ b/src/platform/DARWIN/AFSPreference/afshlp.m
@@ -1,213 +1,11 @@
-//
-//  afshlp.m
-//  AFSCommander
-//
-//  Created by Claudio on 28/06/07.
-//
-
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <Security/Authorization.h>
-#include <Security/AuthorizationTags.h>
-#include <sys/param.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/types.h>
-#include <sys/fcntl.h>
-#include <sys/errno.h>
 #include <unistd.h>
-#include <stdlib.h>
-#include <string.h>
-#include <asl.h>
-#include <sys/event.h>
-#include <mach-o/dyld.h>
-#import "TaskUtil.h"
-#import "AuthUtil.h"
-#import "PListManager.h"
-
-#define AFS_DAEMON_STARTUPSCRIPT	"/Library/OpenAFS/Tools/root.client/usr/vice/etc/afs.rc"
-#define AFS_DAEMON_PATH				"/Library/LaunchDaemons/org.openafs.filesystems.afs.plist"
-
- void stopAfs(int argc, char *argv[]);
- void getPath(char **selfPathPtr);
- void selfRepair(char *selfPath);
- void runWithSelfRepair(char *selfPath,int argc, char *argv[]);
-
-int main(int argc, char *argv[])
-{
-	if (argc < 2)
-		return 1; // nothing to do
-	NSString *cmdString = [NSString stringWithCString:(const char *)argv[1] encoding:NSUTF8StringEncoding];
-
-	if(argc == 2 && [cmdString rangeOfString:@"stop_afs"].location!=NSNotFound ){
-		if (setuid(0) == -1)
-			return 1;
-		const char *stopArgs[] = {"stop", 0L};
-		[[AuthUtil shared] execUnixCommand:AFS_DAEMON_STARTUPSCRIPT
-									  args:stopArgs
-									output:nil];
-	} else 	if(argc == 2 && [cmdString rangeOfString:@"start_afs"].location!=NSNotFound){
-		if (setuid(0) == -1)
-			return 1;
-		const char *startArgs[] = {"start", 0L};
-		[[AuthUtil shared] execUnixCommand:AFS_DAEMON_STARTUPSCRIPT
-									  args:startArgs
-									output:nil];
-	} else if(argc == 4 && [cmdString rangeOfString:@"enable_krb5_startup"].location!=NSNotFound) {
-		int olduid = getuid();
-		setuid(0);
-		int arg2 = atoi(argv[2]);
-		[PListManager krb5TiketAtLoginTime:[[NSNumber numberWithInt:arg2] boolValue]];
-	} else if(argc == 3 && [cmdString rangeOfString:@"start_afs_at_startup"].location!=NSNotFound){
-		if (setuid(0) == -1)
-			return 1;
-		BOOL enable = strcmp("enable", argv[2])==0;
-		NSLog(@"Manage start_afs_at_startup with option %s from helper", argv[2]);
-		[PListManager launchctlStringCommand:enable?@"load":@"unload"
-									  option:[NSArray arrayWithObjects:@"-w", nil]
-								   plistName:@AFS_DAEMON_PATH];
-#if 0
-	} else if(argc == 2 && [cmdString rangeOfString:@"check_afs_daemon"].location!=NSNotFound) {
-		NSString *fsResult = [TaskUtil executeTaskSearchingPath:@"launchctl" args:[NSArray arrayWithObjects: @"list", nil]];
-		BOOL checkAfsDaemon = (fsResult?([fsResult rangeOfString:@"org.openafs.filesystems.afs"].location != NSNotFound):NO);
-		printf("afshlp:afs daemon registration result:%d",checkAfsDaemon);
-#endif
-	}
-	return 0;
-}
-
-#if 0
-void stopAfs(int argc, char *argv[])
-{
-	const char *umountArgs[] = {"-f", "/afs", 0L};
-	[[AuthUtil shared] execUnixCommand:"/sbin/umount" 
-								  args:umountArgs
-								output:nil];
-	
-	const char *afsdArgs[] = {"-shutdown", 0L};
-	[[AuthUtil shared] execUnixCommand:argv[3]
-								  args:afsdArgs
-								output:nil];
-	
-	const char *kernelExtArgs[] = {argv[2], 0L};
-	[[AuthUtil shared] execUnixCommand:"/sbin/kextunload"
-								  args:kernelExtArgs
-								output:nil];
-	
-	[[AuthUtil shared] deautorize];
-}
-
-// Code to get the path to the executable using _NSGetExecutablePath.
-void getPath(char **selfPathPtr)
-{
-    uint32_t selfPathSize = MAXPATHLEN;
-    if(!(*selfPathPtr = malloc(selfPathSize)))
-    {
-        exit(-1);
-    }
-    if(_NSGetExecutablePath(*selfPathPtr, &selfPathSize) == -1)
-    {
-        // Try reallocating selfPath with the size returned by the function.
-        if(!(*selfPathPtr = realloc(*selfPathPtr, selfPathSize + 1)))
-        {
-            NSLog(@"Could not allocate memory to hold executable path.");
-            exit(-1);
-        }
-        if(_NSGetExecutablePath(*selfPathPtr, &selfPathSize) != 0)
-        {
-            NSLog(@"Could not get executable path.");
-            exit(-1);
-        }
-    }
-}
-
-int main(int argc, char *argv[])
-{
-	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-    char *selfPath;
-	
-	NSLog(@"num of arguments %d", argc);
-	int status = [[AuthUtil shared] autorize];
-	if(status != noErr) exit(-1);
-	
-    // Get the path to the tool's executable
-    getPath(&selfPath);
-
-    //selfRepair(selfPath);
-    // All done with the executable path
-    if(selfPath) free(selfPath);
-	
-	// Now do the real work of running the command.
-    runCommand(argc, argv);
-    [[AuthUtil shared] deautorize];
-    [pool release];
-	
-	return 0;
-}
-
-// Self-repair code. Found somehwere in internet
-void selfRepair(char *selfPath)
+int
+main(int argc, char *argv[], char *envp[])
 {
-    struct stat st;
-    int fdTool;
-	printf("selfRepair"); 
-	
-//    [[AuthUtil shared] autorize];
-    
-    // Open tool exclusively, noone can touch it when we work on it, this idea i kepped somewhere in internet
-    fdTool = open(selfPath, O_NONBLOCK | O_RDONLY | O_EXLOCK, 0);
-    
-    if(fdTool == -1)
-    {
-        NSLog(@"Open Filed: %d.", errno);
-        exit(-1);
-    }
-    
-    if(fstat(fdTool, &st))
-    {
-        NSLog(@"fstat failed.");
-        exit(-1);
-    }
-    
-    // Disable group and world writability and make setuid root.
-    if ((st.st_uid != 0) || (st.st_mode & S_IWGRP) || (st.st_mode & S_IWOTH) ||
-	!(st.st_mode & S_ISUID))
-    {
-        fchown(fdTool, 0, st.st_gid);
-	fchmod(fdTool, (st.st_mode & (~(S_IWGRP | S_IWOTH))) | S_ISUID);
-    } else  NSLog(@"st_uid = 0");
-    
-    close(fdTool);
-    
-    NSLog(@"Self-repair done.");
+    int euid;
+    euid = geteuid();
+    if (setuid(euid) != 0)
+	return -1;
+    return execve(argv[1], &argv[1], envp);
 }
 
-
-// Code to execute the tool in self-repair mode.
-void runWithSelfRepair(char *selfPath, int argc, char *argv[])
-{
-    int status;
-    int pid;
-	
-      
-	// Make the qargs array for passing to child the same args of father
-    const char *arguments[] = {argv[1], argv[2], argv[3], "--self-repair", 0L};
-	
-	// Get the privileged AuthorizationRef
-    [[AuthUtil shared] autorize];
-	[[AuthUtil shared] execUnixCommand:selfPath 
-								  args:arguments 
-								output:nil];
-
-    pid = wait(&status);
-    if(pid == -1 || !WIFEXITED(status))
-    {
-        NSLog(@"Error returned from wait().");
-        exit(-1);
-    }
-    
-    // Exit with the same exit code as the self-repair child
-    exit(WEXITSTATUS(status));
-}
-#endif
diff --git a/src/platform/DARWIN/afscell/afscell.xcodeproj/project.pbxproj b/src/platform/DARWIN/afscell/afscell.xcodeproj/project.pbxproj
index 4e572c8..c6af327 100644
--- a/src/platform/DARWIN/afscell/afscell.xcodeproj/project.pbxproj
+++ b/src/platform/DARWIN/afscell/afscell.xcodeproj/project.pbxproj
@@ -213,6 +213,8 @@
 		B44174E708BA33C40065BEDE /* Debug */ = {
 			isa = XCBuildConfiguration;
 			buildSettings = {
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				ONLY_ACTIVE_ARCH = NO;
 				COPY_PHASE_STRIP = NO;
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = YES;
@@ -234,7 +236,10 @@
 				ARCHS = (
 					ppc,
 					i386,
+					x86_64,
 				);
+				ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+				ONLY_ACTIVE_ARCH = NO;
 				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
 				GCC_MODEL_TUNING = G5;
 				GCC_PRECOMPILE_PREFIX_HEADER = YES;
diff --git a/src/platform/DARWIN/growlagent/Andy.icns b/src/platform/DARWIN/growlagent/Andy.icns
new file mode 100644
index 0000000..7c62a76
Binary files /dev/null and b/src/platform/DARWIN/growlagent/Andy.icns differ
diff --git a/src/platform/DARWIN/growlagent/CFGrowlAdditions.c b/src/platform/DARWIN/growlagent/CFGrowlAdditions.c
deleted file mode 100644
index f8592ea..0000000
--- a/src/platform/DARWIN/growlagent/CFGrowlAdditions.c
+++ /dev/null
@@ -1,629 +0,0 @@
-//
-//  CFGrowlAdditions.c
-//  Growl
-//
-//  Created by Mac-arena the Bored Zo on Wed Jun 18 2004.
-//  Copyright 2005-2006 The Growl Project.
-//
-// This file is under the BSD License, refer to License.txt for details
-
-#include <Carbon/Carbon.h>
-#include <unistd.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#include "CFGrowlAdditions.h"
-
-#ifndef MIN
-# define MIN(a,b) ((a) < (b) ? (a) : (b))
-#endif
-
-//extern Boolean CFStringGetFileSystemRepresentation(CFStringRef str) __attribute__((weak_import));
-extern CFIndex CFStringGetMaximumSizeOfFileSystemRepresentation(CFStringRef string) __attribute__((weak_import));
-
-char *createFileSystemRepresentationOfString(CFStringRef str) {
-	char *buffer;
-#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4
-	/* CFStringGetFileSystemRepresentation will cause a link error despite the weak_import attribute above on 10.5 when compiling with 10.2 compatibility using gcc 3.3.
-	 * PPC will therefore always use the 10.3 and below method of creating a file system representation.
-	 */
-	if (1/*CFStringGetFileSystemRepresentation*/) {
-		CFIndex size = CFStringGetMaximumSizeOfFileSystemRepresentation(str);
-		buffer = malloc(size);
-		CFStringGetFileSystemRepresentation(str, buffer, size);
-	} else 
-#endif
-	{
-		buffer = malloc(512);
-		CFURLRef url = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, str, kCFURLPOSIXPathStyle, false);
-		if (!CFURLGetFileSystemRepresentation(url, false, (UInt8 *)buffer, 512)) {
-			free(buffer);
-			buffer = NULL;
-		}
-		CFRelease(url);
-	}
-	return buffer;
-}
-
-STRING_TYPE createStringWithDate(CFDateRef date) {
-	CFLocaleRef locale = CFLocaleCopyCurrent();
-	CFDateFormatterRef dateFormatter = CFDateFormatterCreate(kCFAllocatorDefault,
-															 locale,
-															 kCFDateFormatterMediumStyle,
-															 kCFDateFormatterMediumStyle);
-	CFRelease(locale);
-	CFStringRef dateString = CFDateFormatterCreateStringWithDate(kCFAllocatorDefault,
-																 dateFormatter,
-																 date);
-	CFRelease(dateFormatter);
-	return dateString;
-}
-
-STRING_TYPE createStringWithContentsOfFile(CFStringRef filename, CFStringEncoding encoding) {
-	CFStringRef str = NULL;
-
-	char *path = createFileSystemRepresentationOfString(filename);
-	if (path) {
-		FILE *fp = fopen(path, "rb");
-		if (fp) {
-			fseek(fp, 0, SEEK_END);
-			unsigned long size = ftell(fp);
-			fseek(fp, 0, SEEK_SET);
-			unsigned char *buffer = malloc(size);
-			if (buffer && fread(buffer, 1, size, fp) == size)
-				str = CFStringCreateWithBytes(kCFAllocatorDefault, buffer, size, encoding, true);
-			fclose(fp);
-		}
-		free(path);
-	}
-
-	return str;
-}
-
-STRING_TYPE createStringWithStringAndCharacterAndString(STRING_TYPE str0, UniChar ch, STRING_TYPE str1) {
-	CFStringRef cfstr0 = (CFStringRef)str0;
-	CFStringRef cfstr1 = (CFStringRef)str1;
-	CFIndex len0 = (cfstr0 ? CFStringGetLength(cfstr0) : 0);
-	CFIndex len1 = (cfstr1 ? CFStringGetLength(cfstr1) : 0);
-	size_t length = (len0 + (ch != 0xffff) + len1);
-
-	UniChar *buf = malloc(sizeof(UniChar) * length);
-	size_t i = 0U;
-
-	if (cfstr0) {
-		CFStringGetCharacters(cfstr0, CFRangeMake(0, len0), buf);
-		i += len0;
-	}
-	if (ch != 0xffff)
-		buf[i++] = ch;
-	if (cfstr1)
-		CFStringGetCharacters(cfstr1, CFRangeMake(0, len1), &buf[i]);
-
-	return CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, buf, length, /*contentsDeallocator*/ kCFAllocatorMalloc);
-}
-
-char *copyCString(STRING_TYPE str, CFStringEncoding encoding) {
-	CFIndex size = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str), encoding) + 1;
-	char *buffer = calloc(size, 1);
-	CFStringGetCString(str, buffer, size, encoding);
-	return buffer;
-}
-
-STRING_TYPE copyCurrentProcessName(void) {
-	ProcessSerialNumber PSN = { 0, kCurrentProcess };
-	CFStringRef name = NULL;
-	OSStatus err = CopyProcessName(&PSN, &name);
-	if (err != noErr) {
-		NSLog(CFSTR("in copyCurrentProcessName in CFGrowlAdditions: Could not get process name because CopyProcessName returned %li"), (long)err);
-		name = NULL;
-	}
-	return name;
-}
-
-URL_TYPE copyCurrentProcessURL(void) {
-	ProcessSerialNumber psn = { 0, kCurrentProcess };
-	FSRef fsref;
-	CFURLRef URL = NULL;
-	OSStatus err = GetProcessBundleLocation(&psn, &fsref);
-	if (err != noErr) {
-		NSLog(CFSTR("in copyCurrentProcessURL in CFGrowlAdditions: Could not get application location, because GetProcessBundleLocation returned %li\n"), (long)err);
-	} else {
-		URL = CFURLCreateFromFSRef(kCFAllocatorDefault, &fsref);
-	}
-	return URL;
-}
-STRING_TYPE copyCurrentProcessPath(void) {
-	CFURLRef URL = copyCurrentProcessURL();
-	CFStringRef path = CFURLCopyFileSystemPath(URL, kCFURLPOSIXPathStyle);
-	CFRelease(URL);
-	return path;
-}
-
-URL_TYPE copyTemporaryFolderURL(void) {
-	FSRef ref;
-	CFURLRef url = NULL;
-
-	OSStatus err = FSFindFolder(kOnAppropriateDisk, kTemporaryFolderType, kCreateFolder, &ref);
-	if (err != noErr)
-		NSLog(CFSTR("in copyTemporaryFolderPath in CFGrowlAdditions: Could not locate temporary folder because FSFindFolder returned %li"), (long)err);
-	else
-		url = CFURLCreateFromFSRef(kCFAllocatorDefault, &ref);
-
-	return url;
-}
-STRING_TYPE copyTemporaryFolderPath(void) {
-	CFStringRef path = NULL;
-
-	CFURLRef url = copyTemporaryFolderURL();
-	if (url) {
-		path = CFURLCopyFileSystemPath(url, kCFURLPOSIXPathStyle);
-		CFRelease(url);
-	}
-
-	return path;
-}
-
-DATA_TYPE readFile(const char *filename)
-{
-	CFDataRef data;
-	// read the file into a CFDataRef
-	FILE *fp = fopen(filename, "r");
-	if (fp) {
-		fseek(fp, 0, SEEK_END);
-		long dataLength = ftell(fp);
-		fseek(fp, 0, SEEK_SET);
-		unsigned char *fileData = malloc(dataLength);
-		fread(fileData, 1, dataLength, fp);
-		fclose(fp);
-		data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, fileData, dataLength, kCFAllocatorMalloc);
-	} else
-		data = NULL;
-
-	return data;
-}
-
-URL_TYPE copyURLForApplication(STRING_TYPE appName)
-{
-	CFURLRef appURL = NULL;
-	OSStatus err = LSFindApplicationForInfo(/*inCreator*/  kLSUnknownCreator,
-											/*inBundleID*/ NULL,
-											/*inName*/     appName,
-											/*outAppRef*/  NULL,
-											/*outAppURL*/  &appURL);
-	return (err == noErr) ? appURL : NULL;
-}
-
-STRING_TYPE createStringWithAddressData(DATA_TYPE aAddressData) {
-	struct sockaddr *socketAddress = (struct sockaddr *)CFDataGetBytePtr(aAddressData);
-	// IPv6 Addresses are "FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF"
-	//      at max, which is 40 bytes (0-terminated)
-	// IPv4 Addresses are "255.255.255.255" at max which is smaller
-	char stringBuffer[40];
-	CFStringRef addressAsString = NULL;
-	if (socketAddress->sa_family == AF_INET) {
-		struct sockaddr_in *ipv4 = (struct sockaddr_in *)socketAddress;
-		if (inet_ntop(AF_INET, &(ipv4->sin_addr), stringBuffer, 40))
-			addressAsString = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("%s:%d"), stringBuffer, ipv4->sin_port);
-		else
-			addressAsString = CFSTR("IPv4 un-ntopable");
-	} else if (socketAddress->sa_family == AF_INET6) {
-		struct sockaddr_in6 *ipv6 = (struct sockaddr_in6 *)socketAddress;
-		if (inet_ntop(AF_INET6, &(ipv6->sin6_addr), stringBuffer, 40))
-			// Suggested IPv6 format (see http://www.faqs.org/rfcs/rfc2732.html)
-			addressAsString = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, CFSTR("[%s]:%d"), stringBuffer, ipv6->sin6_port);
-		else
-			addressAsString = CFSTR("IPv6 un-ntopable");
-	} else
-		addressAsString = CFSTR("neither IPv6 nor IPv4");
-
-	return addressAsString;
-}
-
-STRING_TYPE createHostNameForAddressData(DATA_TYPE aAddressData) {
-	char hostname[NI_MAXHOST];
-	struct sockaddr *socketAddress = (struct sockaddr *)CFDataGetBytePtr(aAddressData);
-	if (getnameinfo(socketAddress, (socklen_t)CFDataGetLength(aAddressData),
-					hostname, (socklen_t)sizeof(hostname),
-					/*serv*/ NULL, /*servlen*/ 0,
-					NI_NAMEREQD))
-		return NULL;
-	else
-		return CFStringCreateWithCString(kCFAllocatorDefault, hostname, kCFStringEncodingASCII);
-}
-
-DATA_TYPE copyIconDataForPath(STRING_TYPE path) {
-	CFDataRef data = NULL;
-
-	//false is probably safest, and is harmless when the object really is a directory.
-	CFURLRef URL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, path, kCFURLPOSIXPathStyle, /*isDirectory*/ false);
-	if (URL) {
-		data = copyIconDataForURL(URL);
-		CFRelease(URL);
-	}
-
-	return data;
-}
-
-DATA_TYPE copyIconDataForURL(URL_TYPE URL)
-{
-	CFDataRef data = NULL;
-
-	if (URL) {
-		FSRef ref;
-		if (CFURLGetFSRef(URL, &ref)) {
-			IconRef icon = NULL;
-			SInt16 label_noOneCares;
-			OSStatus err = GetIconRefFromFileInfo(&ref,
-												  /*inFileNameLength*/ 0U, /*inFileName*/ NULL,
-												  kFSCatInfoNone, /*inCatalogInfo*/ NULL,
-												  kIconServicesNoBadgeFlag | kIconServicesUpdateIfNeededFlag,
-												  &icon,
-												  &label_noOneCares);
-			if (err != noErr) {
-				NSLog(CFSTR("in copyIconDataForURL in CFGrowlAdditions: could not get icon for %@: GetIconRefFromFileInfo returned %li\n"), URL, (long)err);
-			} else {
-				IconFamilyHandle fam = NULL;
-				err = IconRefToIconFamily(icon, kSelectorAllAvailableData, &fam);
-				if (err != noErr) {
-					NSLog(CFSTR("in copyIconDataForURL in CFGrowlAdditions: could not get icon for %@: IconRefToIconFamily returned %li\n"), URL, (long)err);
-				} else {
-					HLock((Handle)fam);
-					data = CFDataCreate(kCFAllocatorDefault, (const UInt8 *)*(Handle)fam, GetHandleSize((Handle)fam));
-					HUnlock((Handle)fam);
-					DisposeHandle((Handle)fam);
-				}
-				ReleaseIconRef(icon);
-			}
-		}
-	}
-
-	return data;
-}
-
-URL_TYPE createURLByMakingDirectoryAtURLWithName(URL_TYPE parent, STRING_TYPE name)
-{
-	CFURLRef newDirectory = NULL;
-
-	CFAllocatorRef allocator = parent ? CFGetAllocator(parent) : name ? CFGetAllocator(name) : kCFAllocatorDefault;
-
-	if (parent) parent = CFRetain(parent);
-	else {
-		char *cwdBytes = alloca(PATH_MAX);
-		getcwd(cwdBytes, PATH_MAX);
-		parent = CFURLCreateFromFileSystemRepresentation(allocator, (const unsigned char *)cwdBytes, strlen(cwdBytes), /*isDirectory*/ true);
-		if (!name) {
-			newDirectory = parent;
-			goto end;
-		}
-	}
-	if (!parent)
-		NSLog(CFSTR("in createURLByMakingDirectoryAtURLWithName in CFGrowlAdditions: parent directory URL is NULL (please tell the Growl developers)\n"), parent);
-	else {
-		if (name)
-			name = CFRetain(name);
-		else {
-			name = CFURLCopyLastPathComponent(parent);
-			CFURLRef newParent = CFURLCreateCopyDeletingLastPathComponent(allocator, parent);
-			CFRelease(parent);
-			parent = newParent;
-		}
-
-		if (!name)
-			NSLog(CFSTR("in createURLByMakingDirectoryAtURLWithName in CFGrowlAdditions: name of directory to create is NULL (please tell the Growl developers)\n"), parent);
-		else {
-			FSRef parentRef;
-			if (!CFURLGetFSRef(parent, &parentRef))
-				NSLog(CFSTR("in createURLByMakingDirectoryAtURLWithName in CFGrowlAdditions: could not create FSRef for parent directory at %@ (please tell the Growl developers)\n"), parent);
-			else {
-				FSRef newDirectoryRef;
-
-				struct HFSUniStr255 nameUnicode;
-				CFRange range = { 0, MIN(CFStringGetLength(name), USHRT_MAX) };
-				CFStringGetCharacters(name, range, nameUnicode.unicode);
-				nameUnicode.length = range.length;
-
-				struct FSRefParam refPB = {
-					.ref              = &parentRef,
-					.nameLength       = nameUnicode.length,
-					.name             = nameUnicode.unicode,
-					.whichInfo        = kFSCatInfoNone,
-					.catInfo          = NULL,
-					.textEncodingHint = kTextEncodingUnknown,
-					.newRef           = &newDirectoryRef,
-				};
-
-				OSStatus err = PBCreateDirectoryUnicodeSync(&refPB);
-				if (err == dupFNErr) {
-					//dupFNErr == file (or folder) exists already. this is fine.
-					err = PBMakeFSRefUnicodeSync(&refPB);
-				}
-				if (err == noErr) {
-					NSLog(CFSTR("PBCreateDirectoryUnicodeSync or PBMakeFSRefUnicodeSync returned %li; calling CFURLCreateFromFSRef"), (long)err); //XXX
-					newDirectory = CFURLCreateFromFSRef(allocator, &newDirectoryRef);
-					NSLog(CFSTR("CFURLCreateFromFSRef returned %@"), newDirectory); //XXX
-				} else
-					NSLog(CFSTR("in createURLByMakingDirectoryAtURLWithName in CFGrowlAdditions: could not create directory '%@' in parent directory at %@: FSCreateDirectoryUnicode returned %li (please tell the Growl developers)"), name, parent, (long)err);
-			}
-
-		} //if (name)
-		if(parent)
-			CFRelease(parent);
-		if(name)
-			CFRelease(name);
-	} //if (parent)
-
-end:
-	return newDirectory;
-}
-
-#ifndef COPYFORK_BUFSIZE
-#	define COPYFORK_BUFSIZE 5242880U /*5 MiB*/
-#endif
-
-static OSStatus copyFork(const struct HFSUniStr255 *forkName, const FSRef *srcFile, const FSRef *destDir, const struct HFSUniStr255 *destName, FSRef *outDestFile) {
-	OSStatus err, closeErr;
-	struct FSForkIOParam srcPB = {
-		.ref = srcFile,
-		.forkNameLength = forkName->length,
-		.forkName = forkName->unicode,
-		.permissions = fsRdPerm,
-	};
-	unsigned char debuggingPathBuf[PATH_MAX] = "";
-	OSStatus debuggingPathErr;
-
-	err = PBOpenForkSync(&srcPB);
-	if (err != noErr) {
-		debuggingPathErr = FSRefMakePath(srcFile, debuggingPathBuf, PATH_MAX);
-		if (debuggingPathErr != noErr)
-			snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for source file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-		NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBOpenForkSync (source: %s) returned %li"), debuggingPathBuf, (long)err);
-	} else {
-		FSRef destFile;
-
-		/*the first thing to do is get the name of the destination file, if one
-		 *	wasn't provided.
-		 *and while we're at it, we get the catalogue info as well.
-		 */
-		struct FSCatalogInfo catInfo;
-		struct FSRefParam refPB = {
-			.ref       = srcFile,
-			.whichInfo = kFSCatInfoGettableInfo & kFSCatInfoSettableInfo,
-			.catInfo   = &catInfo,
-			.spec      = NULL,
-			.parentRef = NULL,
-			.outName   = destName ? NULL : (struct HFSUniStr255 *)(destName = alloca(sizeof(struct HFSUniStr255))),
-		};
-
-		err = PBGetCatalogInfoSync(&refPB);
-		if (err != noErr) {
-			debuggingPathErr = FSRefMakePath(srcFile, debuggingPathBuf, PATH_MAX);
-			if (debuggingPathErr != noErr)
-				snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for source file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-			NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBGetCatalogInfoSync (source: %s) returned %li"), debuggingPathBuf, (long)err);
-		} else {
-			refPB.ref              = destDir;
-			refPB.nameLength       = destName->length;
-			refPB.name             = destName->unicode;
-			refPB.textEncodingHint = kTextEncodingUnknown;
-			refPB.newRef           = &destFile;
-
-			const char *functionName = "PBMakeFSRefUnicodeSync"; //for error-reporting message
-
-			err = PBMakeFSRefUnicodeSync(&refPB);
-			if ((err != noErr) && (err != fnfErr)) {
-			handleMakeFSRefError:
-				debuggingPathErr = FSRefMakePath(destDir, debuggingPathBuf, PATH_MAX);
-				if (debuggingPathErr != noErr)
-					snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for destination directory: FSRefMakePath returned %li)", (long)debuggingPathErr);
-
-				//get filename too
-				CFStringRef debuggingFilename = CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault,
-																				   destName->unicode,
-																				   destName->length,
-																				   /*contentsDeallocator*/ kCFAllocatorNull);
-				if (!debuggingFilename)
-					debuggingFilename = CFStringCreateWithCStringNoCopy(kCFAllocatorDefault, "(could not get filename for destination file: CFStringCreateWithCharactersNoCopy returned NULL)", kCFStringEncodingASCII, /*contentsDeallocator*/ kCFAllocatorNull);
-
-				NSLog(CFSTR("in copyFork in CFGrowlAdditions: %s (destination: %s/%@) returned %li"), functionName, debuggingPathBuf, debuggingFilename, (long)err);
-
-				if (debuggingFilename) CFRelease(debuggingFilename);
-			} else {
-				//that file doesn't exist in that folder; create it.
-				err = PBCreateFileUnicodeSync(&refPB);
-				if (err == noErr) {
-					/*make sure the Finder knows about the new file.
-					 *FNNotify returns a status code too, but this isn't an
-					 *	essential step, so we just ignore it.
-					 */
-					FNNotify(destDir, kFNDirectoryModifiedMessage, kNilOptions);
-				} else if (err == dupFNErr) {
-					/*dupFNErr: the file already exists.
-					 *we can safely ignore this error.
-					 */
-					err = noErr;
-				} else {
-					functionName = "PBCreateFileUnicodeSync";
-					goto handleMakeFSRefError;
-				}
-			}
-		}
-		if (err == noErr) {
-			if (outDestFile)
-				memcpy(outDestFile, &destFile, sizeof(destFile));
-
-			struct FSForkIOParam destPB = {
-				.ref            = &destFile,
-				.forkNameLength = forkName->length,
-				.forkName       = forkName->unicode,
-				.permissions    = fsWrPerm,
-			};
-			err = PBOpenForkSync(&destPB);
-			NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBOpenForkSync (dest) returned %li"), (long)err);
-			if (err != noErr) {
-				debuggingPathErr = FSRefMakePath(&destFile, debuggingPathBuf, PATH_MAX);
-				if (debuggingPathErr != noErr)
-					snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for dest file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-				NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBOpenForkSync (destination: %s) returned %li"), debuggingPathBuf, (long)err);
-			} else {
-				void *buf = malloc(COPYFORK_BUFSIZE);
-				if (buf) {
-					srcPB.buffer = destPB.buffer = buf;
-					srcPB.requestCount = COPYFORK_BUFSIZE;
-					while (err == noErr) {
-						err = PBReadForkSync(&srcPB);
-						if (err == eofErr) {
-							err = noErr;
-							if (srcPB.actualCount == 0)
-								break;
-						}
-						if (err != noErr) {
-							debuggingPathErr = FSRefMakePath(&destFile, debuggingPathBuf, PATH_MAX);
-							if (debuggingPathErr != noErr)
-								snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for source file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-							NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBReadForkSync (source: %s) returned %li"), debuggingPathBuf, (long)err);
-						} else {
-							destPB.requestCount = srcPB.actualCount;
-							err = PBWriteForkSync(&destPB);
-							if (err != noErr) {
-								debuggingPathErr = FSRefMakePath(&destFile, debuggingPathBuf, PATH_MAX);
-								if (debuggingPathErr != noErr)
-									snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for dest file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-								NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBWriteForkSync (destination: %s) returned %li"), debuggingPathBuf, (long)err);
-							}
-						}
-					}
-
-					free(buf);
-				}
-
-				closeErr = PBCloseForkSync(&destPB);
-				if (closeErr != noErr) {
-					debuggingPathErr = FSRefMakePath(&destFile, debuggingPathBuf, PATH_MAX);
-					if (debuggingPathErr != noErr)
-						snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for dest file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-					NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBCloseForkSync (destination: %s) returned %li"), debuggingPathBuf, (long)err);
-				}
-				if (err == noErr) err = closeErr;
-			}
-		}
-
-		closeErr = PBCloseForkSync(&srcPB);
-		if (closeErr != noErr) {
-			debuggingPathErr = FSRefMakePath(&destFile, debuggingPathBuf, PATH_MAX);
-			if (debuggingPathErr != noErr)
-				snprintf((char *)debuggingPathBuf, PATH_MAX, "(could not get path for source file: FSRefMakePath returned %li)", (long)debuggingPathErr);
-			NSLog(CFSTR("in copyFork in CFGrowlAdditions: PBCloseForkSync (source: %s) returned %li"), debuggingPathBuf, (long)err);
-		}
-		if (err == noErr) err = closeErr;
-	}
-
-	return err;
-}
-
-static OSStatus GrowlCopyObjectSync(const FSRef *fileRef, const FSRef *destRef, FSRef *destFileRef) {
-	OSStatus err;
-	struct HFSUniStr255 forkName;
-	struct FSForkIOParam forkPB = {
-		.ref = fileRef,
-		.forkIterator = {
-			.initialize = 0
-		},
-		.outForkName = &forkName,
-	};
-
-	do {
-		err = PBIterateForksSync(&forkPB);
-		NSLog(CFSTR("PBIterateForksSync returned %li"), (long)err);
-		if (err != noErr) {
-			if (err != errFSNoMoreItems)
-				NSLog(CFSTR("in GrowlCopyObjectSync in CFGrowlAdditions: PBIterateForksSync returned %li"), (long)err);
-		} else {
-			err = copyFork(&forkName, fileRef, destRef, /*destName*/ NULL, /*outDestFile*/ destFileRef);
-			//copyFork prints its own error messages
-		}
-	} while (err == noErr);
-	if (err == errFSNoMoreItems) err = noErr;
-
-	return err;
-}
-
-URL_TYPE createURLByCopyingFileFromURLToDirectoryURL(URL_TYPE file, URL_TYPE dest)
-{
-	CFURLRef destFileURL = NULL;
-
-	FSRef fileRef, destRef, destFileRef;
-	Boolean gotFileRef = CFURLGetFSRef(file, &fileRef);
-	Boolean gotDestRef = CFURLGetFSRef(dest, &destRef);
-	if (!gotFileRef)
-		NSLog(CFSTR("in createURLByCopyingFileFromURLToDirectoryURL in CFGrowlAdditions: CFURLGetFSRef failed with source URL %@"), file);
-	else if (!gotDestRef)
-		NSLog(CFSTR("in createURLByCopyingFileFromURLToDirectoryURL in CFGrowlAdditions: CFURLGetFSRef failed with destination URL %@"), dest);
-	else {
-		OSStatus err;
-
-		/*
-		 * 10.2 has a problem with weak symbols in frameworks so we use
-		 * MAC_OS_X_VERSION_MIN_REQUIRED >= 10.3.
-		 */
-#if defined(NSAppKitVersionNumber10_3) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-		if (FSCopyObjectSync) {
-			err = FSCopyObjectSync(&fileRef, &destRef, /*destName*/ NULL, &destFileRef, kFSFileOperationOverwrite);
-		} else {
-#endif
-			err = GrowlCopyObjectSync(&fileRef, &destRef, &destFileRef);
-#if defined(NSAppKitVersionNumber10_3) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 && MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_3
-		}
-#endif
-
-		if (err == noErr)
-			destFileURL = CFURLCreateFromFSRef(kCFAllocatorDefault, &destFileRef);
-		else
-			NSLog(CFSTR("in createURLByCopyingFileFromURLToDirectoryURL in CFGrowlAdditions: CopyObjectSync returned %li for source URL %@"), (long)err, file);
-	}
-
-	return destFileURL;
-}
-
-PLIST_TYPE createPropertyListFromURL(URL_TYPE file, u_int32_t mutability, CFPropertyListFormat *outFormat, STRING_TYPE *outErrorString)
-{
-	CFPropertyListRef plist = NULL;
-
-	if (!file)
-		NSLog(CFSTR("in createPropertyListFromURL in CFGrowlAdditions: cannot read from a NULL URL"));
-	else {
-		CFReadStreamRef stream = CFReadStreamCreateWithFile(kCFAllocatorDefault, file);
-		if (!stream)
-			NSLog(CFSTR("in createPropertyListFromURL in CFGrowlAdditions: could not create stream for reading from URL %@"), file);
-		else {
-			if (!CFReadStreamOpen(stream))
-				NSLog(CFSTR("in createPropertyListFromURL in CFGrowlAdditions: could not open stream for reading from URL %@"), file);
-			else {
-				CFPropertyListFormat format;
-				CFStringRef errorString = NULL;
-
-				plist = CFPropertyListCreateFromStream(kCFAllocatorDefault,
-													   stream,
-													   /*streamLength*/ 0,
-													   mutability,
-													   &format,
-													   &errorString);
-				if (!plist)
-					NSLog(CFSTR("in createPropertyListFromURL in CFGrowlAdditions: could not read property list from URL %@ (error string: %@)"), file, errorString);
-
-				if (outFormat) *outFormat = format;
-				if (errorString) {
-					if (outErrorString)
-						*outErrorString = errorString;
-					else
-						CFRelease(errorString);
-				}
-
-				CFReadStreamClose(stream);
-			}
-
-			CFRelease(stream);
-		}
-	}
-
-	return plist;
-}
diff --git a/src/platform/DARWIN/growlagent/CFGrowlAdditions.h b/src/platform/DARWIN/growlagent/CFGrowlAdditions.h
deleted file mode 100644
index a65d78d..0000000
--- a/src/platform/DARWIN/growlagent/CFGrowlAdditions.h
+++ /dev/null
@@ -1,86 +0,0 @@
-//
-//  CFGrowlAdditions.h
-//  Growl
-//
-//  Created by Mac-arena the Bored Zo on Wed Jun 18 2004.
-//  Copyright 2005-2006 The Growl Project.
-//
-// This file is under the BSD License, refer to License.txt for details
-
-#ifndef HAVE_CFGROWLADDITIONS_H
-#define HAVE_CFGROWLADDITIONS_H
-
-#include "CFGrowlDefines.h"
-
-//see GrowlApplicationBridge-Carbon.c for rationale of using NSLog.
-extern void NSLog(STRING_TYPE format, ...);
-
-char *createFileSystemRepresentationOfString(STRING_TYPE str);
-STRING_TYPE createStringWithDate(DATE_TYPE date);
-
-STRING_TYPE createStringWithContentsOfFile(STRING_TYPE filename, CFStringEncoding encoding);
-
-//you can leave out any of these three components. to leave out the character, pass 0xffff.
-STRING_TYPE createStringWithStringAndCharacterAndString(STRING_TYPE str0, UniChar ch, STRING_TYPE str1);
-
-char *copyCString(STRING_TYPE str, CFStringEncoding encoding);
-
-STRING_TYPE copyCurrentProcessName(void);
-URL_TYPE    copyCurrentProcessURL(void);
-STRING_TYPE copyCurrentProcessPath(void);
-
-URL_TYPE    copyTemporaryFolderURL(void);
-STRING_TYPE copyTemporaryFolderPath(void);
-
-STRING_TYPE createStringWithAddressData(DATA_TYPE aAddressData);
-STRING_TYPE createHostNameForAddressData(DATA_TYPE aAddressData);
-
-DATA_TYPE readFile(const char *filename);
-URL_TYPE  copyURLForApplication(STRING_TYPE appName);
-
-/*	@function	copyIconDataForPath
- *	@param	path	The POSIX path to the file or folder whose icon you want.
- *	@result	The icon data, in IconFamily format (same as used in the 'icns' resource and in .icns files). You are responsible for releasing this object.
- */
-DATA_TYPE copyIconDataForPath(STRING_TYPE path);
-/*	@function	copyIconDataForURL
- *	@param	URL	The URL to the file or folder whose icon you want.
- *	@result	The icon data, in IconFamily format (same as used in the 'icns' resource and in .icns files). You are responsible for releasing this object.
- */
-DATA_TYPE copyIconDataForURL(URL_TYPE URL);
-
-/*	@function	createURLByMakingDirectoryAtURLWithName
- *	@abstract	Create a directory.
- *	@discussion	This function has a useful side effect: if you pass
- *	 <code>NULL</code> for both parameters, this function will act basically as
- *	 CFURL version of <code>getcwd</code>(3).
- *
- *	 Also, for CF clients: the allocator used to create the returned URL will
- *	 be the allocator for the parent URL, the allocator for the name string, or
- *	 the default allocator, in that order of preference.
- *	@param	parent	The directory in which to create the new directory. If this is <code>NULL</code>, the current working directory (as returned by <code>getcwd</code>(3)) will be used.
- *	@param	name	The name of the directory you want to create. If this is <code>NULL</code>, the directory specified by the URL will be created.
- *	@result	The URL for the directory if it was successfully created (in which case, you are responsible for releasing this object); else, <code>NULL</code>.
- */
-URL_TYPE createURLByMakingDirectoryAtURLWithName(URL_TYPE parent, STRING_TYPE name);
-
-/*	@function	createURLByCopyingFileFromURLToDirectoryURL
- *	@param	file	The file to copy.
- *	@param	dest	The folder to copy it to.
- *	@result	The copy. You are responsible for releasing this object.
- */
-URL_TYPE createURLByCopyingFileFromURLToDirectoryURL(URL_TYPE file, URL_TYPE dest);
-
-/*	@function	createPropertyListFromURL
- *	@abstract	Reads a property list from the contents of an URL.
- *	@discussion	Creates a property list from the data at an URL (for example, a
- *	 file URL), and returns it.
- *	@param	file	The file to read.
- *	@param	mutability	A mutability-option constant indicating whether the property list (and possibly its contents) should be mutable.
- *	@param	outFormat	If the property list is read successfully, this will point to the format of the property list. You may pass NULL if you are not interested in this information. If the property list is not read successfully, the value at this pointer will be left unchanged.
- *	@param	outErrorString	If an error occurs, this will point to a string (which you are responsible for releasing) describing the error. You may pass NULL if you are not interested in this information. If no error occurs, the value at this pointer will be left unchanged.
- *	@result	The property list. You are responsible for releasing this object.
- */
-PLIST_TYPE createPropertyListFromURL(URL_TYPE file, u_int32_t mutability, CFPropertyListFormat *outFormat, STRING_TYPE *outErrorString);
-
-#endif
diff --git a/src/platform/DARWIN/growlagent/CFGrowlDefines.h b/src/platform/DARWIN/growlagent/CFGrowlDefines.h
deleted file mode 100644
index da7c17c..0000000
--- a/src/platform/DARWIN/growlagent/CFGrowlDefines.h
+++ /dev/null
@@ -1,38 +0,0 @@
-//
-//  CFURLDefines.h
-//  Growl
-//
-//  Created by Ingmar Stein on Fri Sep 16 2005.
-//  Copyright 2005-2006 The Growl Project. All rights reserved.
-//
-// This file is under the BSD License, refer to License.txt for details
-
-#ifndef HAVE_CFGROWLDEFINES_H
-#define HAVE_CFGROWLDEFINES_H
-
-#ifdef __OBJC__
-#	define DATA_TYPE				NSData *
-#	define DATE_TYPE				NSDate *
-#	define DICTIONARY_TYPE			NSDictionary *
-#	define MUTABLE_DICTIONARY_TYPE	NSMutableDictionary *
-#	define STRING_TYPE				NSString *
-#	define ARRAY_TYPE				NSArray *
-#	define URL_TYPE					NSURL *
-#	define PLIST_TYPE				NSObject *
-#	define OBJECT_TYPE				id
-#	define BOOL_TYPE				BOOL
-#else
-#	include <CoreFoundation/CoreFoundation.h>
-#	define DATA_TYPE				CFDataRef
-#	define DATE_TYPE				CFDateRef
-#	define DICTIONARY_TYPE			CFDictionaryRef
-#	define MUTABLE_DICTIONARY_TYPE	CFMutableDictionaryRef
-#	define STRING_TYPE				CFStringRef
-#	define ARRAY_TYPE				CFArrayRef
-#	define URL_TYPE					CFURLRef
-#	define PLIST_TYPE				CFPropertyListRef
-#	define OBJECT_TYPE				CFTypeRef
-#	define BOOL_TYPE				Boolean
-#endif
-
-#endif
diff --git a/src/platform/DARWIN/growlagent/Info.plist b/src/platform/DARWIN/growlagent/Info.plist
new file mode 100644
index 0000000..2733788
--- /dev/null
+++ b/src/platform/DARWIN/growlagent/Info.plist
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>BuildMachineOSBuild</key>
+	<string>11E2620</string>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleExecutable</key>
+	<string>growlagent-openafs</string>
+	<key>CFBundleIdentifier</key>
+	<string>org.openafs.network.growlagent-openafs</string>
+	<key>CFBundleIconFile</key>
+	<string>Andy.icns</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>1.0</string>
+	<key>DTCompiler</key>
+	<string></string>
+	<key>DTPlatformBuild</key>
+	<string>4E3002</string>
+	<key>DTPlatformVersion</key>
+	<string>GM</string>
+	<key>DTSDKBuild</key>
+	<string>11E52</string>
+	<key>DTSDKName</key>
+	<string>macosx10.7</string>
+	<key>DTXcode</key>
+	<string>0433</string>
+	<key>DTXcodeBuild</key>
+	<string>4E3002</string>
+	<key>LSUIElement</key>
+	<true/>
+	<key>NSPrincipalClass</key>
+	<string>NSApplication</string>
+</dict>
+</plist>
diff --git a/src/platform/DARWIN/growlagent/Makefile.in b/src/platform/DARWIN/growlagent/Makefile.in
index 2f80ae9..6be44fa 100644
--- a/src/platform/DARWIN/growlagent/Makefile.in
+++ b/src/platform/DARWIN/growlagent/Makefile.in
@@ -5,31 +5,30 @@ INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 
-OBJS=main.o CFGrowlAdditions.o
+OBJS=main.o
 
 all: growlagent-openafs
 
-_growlagent-openafs: ${OBJS}
+growlagent-openafs: ${OBJS}
 	${CC} ${CFLAGS} -o $@ ${OBJS} -framework Security -framework AppKit -framework CoreFoundation
 
-growlagent-openafs: _growlagent-openafs
-	${CP} $? $@
-	Rez -o $@ growlagent.r
-	SetFile -a "C" $@
-
-CFGrowlAdditions.o: CFGrowlAdditions.h
-main.o: GrowlDefines.h GrowlPathway.h CFGrowlAdditions.h
+main.o: GrowlDefines.h GrowlPathway.h
 
 clean:
-	$(RM) -f *.o growlagent-openafs _growlagent-openafs
+	$(RM) -f *.o growlagent-openafs
 
 install:
 
 dest: \
-	${DEST}/tools/growlagent-openafs
-
-${DEST}/tools/growlagent-openafs: growlagent-openafs
-	${INSTALL} $? $@
+	${DEST}/tools/growlagent-openafs.app
+
+${DEST}/tools/growlagent-openafs.app: growlagent-openafs
+	-mkdir -p $@
+	-mkdir -p $@/Contents/Resources/MacOS
+	-mkdir -p $@/Contents/MacOS
+	${INSTALL} $? $@/Contents/MacOS
+	${INSTALL} ${srcdir}/Andy.icns $@/Contents/Resources
+	${INSTALL} ${srcdir}/Info.plist $@/Contents
 
 include ../../../config/Makefile.version
 
diff --git a/src/platform/DARWIN/growlagent/main.m b/src/platform/DARWIN/growlagent/main.m
index c269623..a39f77a 100644
--- a/src/platform/DARWIN/growlagent/main.m
+++ b/src/platform/DARWIN/growlagent/main.m
@@ -20,9 +20,9 @@
 
 */
 #import <Foundation/Foundation.h>
+#import <CoreFoundation/CoreFoundation.h>
 #import "GrowlDefines.h"
 #import "GrowlPathway.h"
-#include "CFGrowlAdditions.h"
 
 #include <mach-o/dyld.h>
 #include <unistd.h>
@@ -168,19 +168,32 @@ static void MySocketReadCallBack(CFSocketRef socket, CFSocketCallBackType callba
 	}
 }
 
+CFDataRef readFile(const char *filename)
+{
+    CFDataRef data;
+    // read the file into a CFDataRef
+    FILE *fp = fopen(filename, "r");
+    if (fp) {
+	fseek(fp, 0, SEEK_END);
+	long dataLength = ftell(fp);
+	fseek(fp, 0, SEEK_SET);
+	unsigned char *fileData = malloc(dataLength);
+	fread(fileData, 1, dataLength, fp);
+	fclose(fp);
+	data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, fileData, dataLength, kCFAllocatorMalloc);
+    } else
+	data = NULL;
+    
+    return data;
+}
+
 int main(int argc, const char **argv) {
 	BOOL         wait = NO;
 	int          code = EXIT_SUCCESS;
 	CFDataRef icon = NULL;
 	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
-
-	// get icon data for application name
-	char *selfPath;
-	getPath(&selfPath);
-	CFStringRef appPath = CFStringCreateWithCString(kCFAllocatorDefault, selfPath, kCFStringEncodingUTF8);
-	NSURL *appURL = [NSURL fileURLWithPath:(NSString *)appPath];
-	icon = (CFDataRef)copyIconDataForURL(appURL);
-	free(selfPath);
+	NSString* myImage = [[NSBundle mainBundle] pathForResource:@"Andy" ofType:@"icns"];
+	icon = (CFDataRef) readFile([myImage UTF8String]);
 
 	// Register with Growl
 	CFStringRef name = NOTIFICATION_NAME;
diff --git a/src/rx/DARWIN/rx_knet.c b/src/rx/DARWIN/rx_knet.c
index fcf3f34..f0b3400 100644
--- a/src/rx/DARWIN/rx_knet.c
+++ b/src/rx/DARWIN/rx_knet.c
@@ -34,6 +34,9 @@ rx_upcall(socket_t so, void *arg, __unused int waitflag)
     afs_int32 savelen;          /* was using rlen but had aliasing problems */
     size_t nbytes, resid, noffset;
 
+    /* See if a check for additional packets was issued */
+    rx_CheckPackets();
+
     p = rxi_AllocPacket(RX_PACKET_CLASS_RECEIVE);
     rx_computelen(p, tlen);
     rx_SetDataSize(p, tlen);    /* this is the size of the user data area */
