diff --git a/libminijail.c b/libminijail.c
index cf56849..a797823 100644
--- a/libminijail.c
+++ b/libminijail.c
@@ -1240,14 +1240,6 @@
 				     NULL, NULL, true);
 }
 
-int API minijail_run_pid_pipe(struct minijail *j, const char *filename,
-			      char *const argv[], pid_t *pchild_pid,
-			      int *pstdin_fd)
-{
-	return minijail_run_internal(j, filename, argv, pchild_pid, pstdin_fd,
-				     NULL, NULL, true);
-}
-
 int API minijail_run_pid_pipes(struct minijail *j, const char *filename,
 			       char *const argv[], pid_t *pchild_pid,
 			       int *pstdin_fd, int *pstdout_fd, int *pstderr_fd)
diff --git a/libminijail.h b/libminijail.h
index bdf08eb..62e4007 100644
--- a/libminijail.h
+++ b/libminijail.h
@@ -149,15 +149,6 @@
  * Update |*pchild_pid| with the pid of the child.
  * Update |*pstdin_fd| with a fd that allows writing to the child's
  * standard input.
- */
-int minijail_run_pid_pipe(struct minijail *j, const char *filename,
-			  char *const argv[], pid_t *pchild_pid,
-			  int *pstdin_fd);
-
-/* Run the specified command in the given minijail, execve(2)-style.
- * Update |*pchild_pid| with the pid of the child.
- * Update |*pstdin_fd| with a fd that allows writing to the child's
- * standard input.
  * Update |*pstdout_fd| with a fd that allows reading from the child's
  * standard output.
  * Update |*pstderr_fd| with a fd that allows reading from the child's
diff --git a/libminijail_unittest.c b/libminijail_unittest.c
index 011ce85..1a98741 100644
--- a/libminijail_unittest.c
+++ b/libminijail_unittest.c
@@ -145,30 +145,6 @@
 
 /*
  * TODO(jorgelo): rewrite these tests to not depend on libminijailpreload.so.
-TEST(test_minijail_run_pid_pipe) {
-  pid_t pid;
-  int child_stdin;
-  int mj_run_ret;
-  ssize_t write_ret;
-  int status;
-  char filename[] = "test/read_stdin";
-  char *argv[2];
-  argv[0] = filename;
-  argv[1] = NULL;
-
-  struct minijail *j = minijail_new();
-  mj_run_ret = minijail_run_pid_pipe(j, argv[0], argv, &pid, &child_stdin);
-  EXPECT_EQ(mj_run_ret, 0);
-  write_ret = write(child_stdin, "test\n", strlen("test\n"));
-  EXPECT_GT(write_ret, -1);
-
-  waitpid(pid, &status, 0);
-  ASSERT_TRUE(WIFEXITED(status));
-  EXPECT_EQ(WEXITSTATUS(status), 0);
-
-  minijail_destroy(j);
-}
-
 TEST(test_minijail_run_pid_pipes) {
   pid_t pid;
   int child_stdin, child_stdout, child_stderr;
