diff --git a/lib/testutil/init.go b/lib/testutil/init.go
index 5e9c28f..9cc119f 100644
--- a/lib/testutil/init.go
+++ b/lib/testutil/init.go
@@ -16,8 +16,11 @@
 	// define flags that we care about. In practice, this is the
 	// flags defined by the testing package, the logging library
 	// and any flags defined by the blackbox package below.
+	// TODO(cnicolau,ashankar): This is painful to ensure. Not calling
+	// flag.Parse in init() is the right solution?
 	_ "testing"
 	"time"
+	_ "veyron.io/veyron/veyron/services/mgmt/suidhelper/impl/flag"
 
 	// Import blackbox to ensure that it gets to define its flags.
 	_ "veyron.io/veyron/veyron/lib/testutil/blackbox"
diff --git a/services/mgmt/suidhelper/impl/args.go b/services/mgmt/suidhelper/impl/args.go
index 964f910..34ec8f6 100644
--- a/services/mgmt/suidhelper/impl/args.go
+++ b/services/mgmt/suidhelper/impl/args.go
@@ -8,6 +8,8 @@
 	"os"
 	"os/user"
 	"strconv"
+
+	sflag "veyron.io/veyron/veyron/services/mgmt/suidhelper/impl/flag"
 )
 
 type WorkParameters struct {
@@ -31,21 +33,25 @@
 
 const SavedArgs = "VEYRON_SAVED_ARGS"
 
-var flagUsername, flagWorkspace, flagStdoutLog, flagStderrLog, flagRun *string
-var flagMinimumUid *int64
+var (
+	flagUsername, flagWorkspace, flagStdoutLog, flagStderrLog, flagRun *string
+	flagMinimumUid                                                     *int64
+)
 
 func init() {
-	// Add flags to global set.
-	setupFlags(flag.CommandLine)
+	setupFlags(nil)
 }
 
 func setupFlags(fs *flag.FlagSet) {
-	flagUsername = fs.String("username", "", "The UNIX user name used for the other functions of this tool.")
-	flagWorkspace = fs.String("workspace", "", "Path to the application's workspace directory.")
-	flagStdoutLog = fs.String("stdoutlog", "", "Path to the stdout log file.")
-	flagStderrLog = fs.String("stderrlog", "", "Path to the stdin log file.")
-	flagRun = fs.String("run", "", "Path to the application to exec.")
-	flagMinimumUid = fs.Int64("minuid", uidThreshold, "UIDs cannot be less than this number.")
+	if fs != nil {
+		sflag.SetupFlags(fs)
+	}
+	flagUsername = sflag.Username
+	flagWorkspace = sflag.Workspace
+	flagStdoutLog = sflag.StdoutLog
+	flagStderrLog = sflag.StderrLog
+	flagRun = sflag.Run
+	flagMinimumUid = sflag.MinimumUid
 }
 
 // ParseArguments populates the WorkParameter object from the provided args
diff --git a/services/mgmt/suidhelper/impl/args_darwin.go b/services/mgmt/suidhelper/impl/args_darwin.go
deleted file mode 100644
index f2f6d00..0000000
--- a/services/mgmt/suidhelper/impl/args_darwin.go
+++ /dev/null
@@ -1,3 +0,0 @@
-package impl
-
-const uidThreshold = 501
diff --git a/services/mgmt/suidhelper/impl/args_linux.go b/services/mgmt/suidhelper/impl/args_linux.go
deleted file mode 100644
index f2f6d00..0000000
--- a/services/mgmt/suidhelper/impl/args_linux.go
+++ /dev/null
@@ -1,3 +0,0 @@
-package impl
-
-const uidThreshold = 501
diff --git a/services/mgmt/suidhelper/impl/args_test.go b/services/mgmt/suidhelper/impl/args_test.go
index 0bacc7c..a209c87 100644
--- a/services/mgmt/suidhelper/impl/args_test.go
+++ b/services/mgmt/suidhelper/impl/args_test.go
@@ -57,7 +57,7 @@
 		{
 			[]string{"setuidhelper", "--username", testUserName},
 			[]string{"A=B"},
-			fmt.Errorf("suidhelper does not permit uids less than %d", uidThreshold),
+			fmt.Errorf("suidhelper does not permit uids less than 501"),
 			WorkParameters{},
 		},
 	}
diff --git a/services/mgmt/suidhelper/impl/flag/flag.go b/services/mgmt/suidhelper/impl/flag/flag.go
new file mode 100644
index 0000000..c21e1ca
--- /dev/null
+++ b/services/mgmt/suidhelper/impl/flag/flag.go
@@ -0,0 +1,33 @@
+// Package flag provides flag definitions for the suidhelper package.
+//
+// It does NOT depend on any packages outside the Go standard library.
+// This allows veyron.io/veyron/veyron/lib/testutil to depend on this
+// package, thereby ensuring that the suidhelper flags are defined
+// before the flag.Parse call in testutil.init is made.
+//
+// This is a hack! This file should go away once testutil.init
+// is changed to not parse flags in init().
+// TODO(cnicolaou,ashankar): See above!
+package flag
+
+import "flag"
+
+var (
+	Username, Workspace, StdoutLog, StderrLog, Run *string
+	MinimumUid                                     *int64
+)
+
+func init() {
+	SetupFlags(flag.CommandLine)
+}
+
+func SetupFlags(fs *flag.FlagSet) {
+	Username = fs.String("username", "", "The UNIX user name used for the other functions of this tool.")
+	Workspace = fs.String("workspace", "", "Path to the application's workspace directory.")
+	StdoutLog = fs.String("stdoutlog", "", "Path to the stdout log file.")
+	StderrLog = fs.String("stderrlog", "", "Path to the stdin log file.")
+	Run = fs.String("run", "", "Path to the application to exec.")
+	MinimumUid = fs.Int64("minuid", uidThreshold, "UIDs cannot be less than this number.")
+}
+
+const uidThreshold = 501
