diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java b/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java
index 83fe92a..2d42f58 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/HostToHostIntent.java
@@ -41,7 +41,7 @@
     }
 
     private static HostId max(HostId one, HostId two) {
-        return one.hashCode() > two.hashCode() ? one : two;
+        return one.hashCode() >= two.hashCode() ? one : two;
     }
 
     /**
diff --git a/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java b/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java
index f23a448..4c11f57 100644
--- a/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java
+++ b/core/api/src/main/java/org/onlab/onos/net/intent/Intent.java
@@ -37,8 +37,8 @@
      */
     protected Intent(IntentId id, ApplicationId appId,
                      Collection<NetworkResource> resources) {
+        this.id = checkNotNull(id, "Intent ID cannot be null");
         this.appId = checkNotNull(appId, "Application ID cannot be null");
-        this.id = checkNotNull(id, "Fingerprint cannot be null");
         this.resources = resources;
     }
 
@@ -77,6 +77,7 @@
      * @return intent identifier
      */
     protected static IntentId id(Object... fields) {
+        // FIXME: spread the bits across the full long spectrum
         return IntentId.valueOf(Objects.hash(fields));
     }
 
@@ -90,12 +91,12 @@
     }
 
     @Override
-    public int hashCode() {
+    public final int hashCode() {
         return Objects.hash(id);
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public final boolean equals(Object obj) {
         if (this == obj) {
             return true;
         }
diff --git a/tools/test/bin/onos-install b/tools/test/bin/onos-install
index d999f36..3448214 100755
--- a/tools/test/bin/onos-install
+++ b/tools/test/bin/onos-install
@@ -6,8 +6,17 @@
 [ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1
 . $ONOS_ROOT/tools/build/envDefaults
 
-# If the first option is -f attempt uninstall first.
-[ "$1" = "-f" ] && shift && onos-uninstall ${1:-$OCI}
+while getopts fn o; do
+    case "$o" in
+        f) uninstall=true;;
+        n) nostart=true;;
+    esac
+done
+let OPC=$OPTIND-1
+shift $OPC
+
+# If the -f was given, attempt uninstall first.
+[ -n "$uninstall" ] && onos-uninstall ${1:-$OCI}
 
 node=${1:-$OCI}
 remote=$ONOS_USER@$node
@@ -27,19 +36,20 @@
     mkdir $ONOS_INSTALL_DIR/config
 
     # Install the upstart configuration file and setup options for debugging
-    sudo cp $ONOS_INSTALL_DIR/debian/onos.conf /etc/init/onos.conf
+    [ -z "$nostart" ] && sudo cp $ONOS_INSTALL_DIR/debian/onos.conf /etc/init/onos.conf
     echo 'export ONOS_OPTS=debug' > $ONOS_INSTALL_DIR/options
 
     # Remove any previous ON.Lab bits from ~/.m2 repo
     rm -fr ~/.m2/repository/org/onlab
 
     # Drop log level for the console
-    echo "log4j.logger.org.apache.sshd = WARN" >> $ONOS_INSTALL_DIR/$KARAF_DIST/etc/org.ops4j.pax.logging.cfg
+    echo "log4j.logger.org.apache.sshd = WARN" \
+        >> $ONOS_INSTALL_DIR/$KARAF_DIST/etc/org.ops4j.pax.logging.cfg
 
 "
 
 # Configure the ONOS installation
 onos-config $node
 
-# Ignite the ONOS service.
-onos-service $node start
+# Unless -n option was given, attempt to ignite the ONOS service.
+[ -z "$nostart" ] && onos-service $node start
