diff --git a/tools/releasetools/edify_generator.py b/tools/releasetools/edify_generator.py
index 5672b5a..9ef1926 100644
--- a/tools/releasetools/edify_generator.py
+++ b/tools/releasetools/edify_generator.py
@@ -72,24 +72,31 @@
     """Assert that the current system build fingerprint is one of *fp."""
     if not fp:
       raise ValueError("must specify some fingerprints")
-    cmd = ('assert(' +
-           ' ||\0'.join([('file_getprop("/system/build.prop", '
+    cmd = (
+           ' ||\n    '.join([('file_getprop("/system/build.prop", '
                          '"ro.build.fingerprint") == "%s"')
                         % i for i in fp]) +
-           ');')
-    self.script.append(self._WordWrap(cmd))
+           ' ||\n    abort("Package expects build fingerprint of %s; this '
+           'device has " + getprop("ro.build.fingerprint") + ".");'
+           ) % (" or ".join(fp),)
+    self.script.append(cmd)
 
-  def AssertOlderBuild(self, timestamp):
+  def AssertOlderBuild(self, timestamp, timestamp_text):
     """Assert that the build on the device is older (or the same as)
     the given timestamp."""
-    self.script.append(('assert(!less_than_int(%s, '
-                        'getprop("ro.build.date.utc")));') % (timestamp,))
+    self.script.append(
+        ('(!less_than_int(%s, getprop("ro.build.date.utc"))) || '
+         'abort("Can\'t install this package (%s) over newer '
+         'build (" + getprop("ro.build.date") + ").");'
+         ) % (timestamp, timestamp_text))
 
   def AssertDevice(self, device):
     """Assert that the device identifier is the given string."""
-    cmd = ('assert(getprop("ro.product.device") == "%s" ||\0'
-           'getprop("ro.build.product") == "%s");' % (device, device))
-    self.script.append(self._WordWrap(cmd))
+    cmd = ('getprop("ro.product.device") == "%s" || '
+           'abort("This package is for \\"%s\\" devices; '
+           'this is a \\"" + getprop("ro.product.device") + "\\".");'
+           ) % (device, device)
+    self.script.append(cmd)
 
   def AssertSomeBootloader(self, *bootloaders):
     """Asert that the bootloader version is one of *bootloaders."""
@@ -115,9 +122,10 @@
     """Check that the given file (or MTD reference) has one of the
     given *sha1 hashes, checking the version saved in cache if the
     file does not match."""
-    self.script.append('assert(apply_patch_check("%s"' % (filename,) +
-                       "".join([', "%s"' % (i,) for i in sha1]) +
-                       '));')
+    self.script.append(
+        'apply_patch_check("%s"' % (filename,) +
+        "".join([', "%s"' % (i,) for i in sha1]) +
+        ') || abort("\\"%s\\" has unexpected contents.");' % (filename,))
 
   def FileCheck(self, filename, *sha1):
     """Check that the given file (or MTD reference) has one of the
@@ -129,7 +137,8 @@
   def CacheFreeSpaceCheck(self, amount):
     """Check that there's at least 'amount' space that can be made
     available on /cache."""
-    self.script.append("assert(apply_patch_space(%d));" % (amount,))
+    self.script.append(('apply_patch_space(%d) || abort("Not enough free space '
+                        'on /system to apply patches.");') % (amount,))
 
   def Mount(self, mount_point):
     """Mount the partition with the given mount_point."""
diff --git a/tools/releasetools/ota_from_target_files b/tools/releasetools/ota_from_target_files
index e0d5d91..1e1d04e 100755
--- a/tools/releasetools/ota_from_target_files
+++ b/tools/releasetools/ota_from_target_files
@@ -387,7 +387,8 @@
 
   if not OPTIONS.omit_prereq:
     ts = GetBuildProp("ro.build.date.utc", OPTIONS.info_dict)
-    script.AssertOlderBuild(ts)
+    ts_text = GetBuildProp("ro.build.date", OPTIONS.info_dict)
+    script.AssertOlderBuild(ts, ts_text)
 
   AppendAssertions(script, OPTIONS.info_dict)
   device_specific.FullOTA_Assertions()
