diff --git a/postinstall_runner_action.cc b/postinstall_runner_action.cc
new file mode 100644
index 0000000..4122860
--- /dev/null
+++ b/postinstall_runner_action.cc
@@ -0,0 +1,49 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "update_engine/postinstall_runner_action.h"
+#include <sys/mount.h>
+#include <stdlib.h>
+#include "update_engine/utils.h"
+
+namespace chromeos_update_engine {
+
+using std::string;
+
+namespace {
+const string kMountPath(utils::kStatefulPartition + "/au_destination");
+const string kPostinstallScript("/postinst");
+}
+
+void PostinstallRunnerAction::PerformAction() {
+  CHECK(HasInputObject());
+  const string install_device = GetInputObject();
+
+  int rc = mount(install_device.c_str(), kMountPath.c_str(), "ext3", 0, NULL);
+  if (rc < 0) {
+    LOG(ERROR) << "Unable to mount destination device " << install_device
+               << " onto " << kMountPath;
+    processor_->ActionComplete(this, false);
+    return;
+  }
+
+  // run postinstall script
+  rc = system((kMountPath + kPostinstallScript + " " + install_device).c_str());
+  bool success = (rc == 0);
+  if (!success) {
+    LOG(ERROR) << "Postinst command failed with code: " << rc;
+  }
+
+  rc = umount(kMountPath.c_str());
+  if (rc < 0) {
+    // non-fatal
+    LOG(ERROR) << "Unable to umount destination device";
+  }
+  if (success && HasOutputPipe()) {
+    SetOutputObject(install_device);
+  }
+  processor_->ActionComplete(this, success);
+}
+
+}  // namespace chromeos_update_engine
