diff --git includes/bootstrap.inc includes/bootstrap.inc
index 70258b2..52731c3 100644
--- includes/bootstrap.inc
+++ includes/bootstrap.inc
@@ -2247,3 +2247,18 @@ function drupal_static_reset($name = NULL) {
 function drupal_is_cli() {
   return (!isset($_SERVER['SERVER_SOFTWARE']) && (php_sapi_name() == 'cli' || (is_numeric($_SERVER['argc']) && $_SERVER['argc'] > 0)));
 }
+
+/**
+ * Formats text for emphasized display in a placeholder inside a sentence.
+ * Used automatically by t().
+ *
+ * @param $variables
+ *   An associative array containing:
+ *   - text: The text to format (plain-text).
+ *
+ * @return
+ *   The formatted text (html).
+ */
+function drupal_placeholder($variables) {
+  return '<em class="placeholder">' . check_plain($variables['text']) . '</em>';
+}
diff --git includes/common.inc includes/common.inc
index 40cedc8..ea88598 100644
--- includes/common.inc
+++ includes/common.inc
@@ -1546,7 +1546,7 @@ function t($string, array $args = array(), array $options = array()) {
         case '%':
         default:
           // Escaped and placeholder.
-          $args[$key] = theme('placeholder', array('text' => $value));
+          $args[$key] = drupal_placeholder(array('text' => $value));
           break;
 
         case '!':
diff --git includes/theme.inc includes/theme.inc
index 3a18e8e..f158d35 100644
--- includes/theme.inc
+++ includes/theme.inc
@@ -1375,21 +1375,6 @@ function theme_disable($theme_list) {
  */
 
 /**
- * Formats text for emphasized display in a placeholder inside a sentence.
- * Used automatically by t().
- *
- * @param $variables
- *   An associative array containing:
- *   - text: The text to format (plain-text).
- *
- * @return
- *   The formatted text (html).
- */
-function theme_placeholder($variables) {
-  return '<em>' . check_plain($variables['text']) . '</em>';
-}
-
-/**
  * Return a themed set of status and/or error messages. The messages are grouped
  * by type.
  *
diff --git modules/filter/filter.admin.inc modules/filter/filter.admin.inc
index 2091ee3..784a520 100644
--- modules/filter/filter.admin.inc
+++ modules/filter/filter.admin.inc
@@ -23,8 +23,8 @@ function filter_admin_overview($form) {
     // to all roles and cannot be deleted via the admin interface.
     $form['formats'][$id]['#is_fallback'] = ($id == $fallback_format);
     if ($form['formats'][$id]['#is_fallback']) {
-      $form['formats'][$id]['name'] = array('#markup' => theme('placeholder', array('text' => $format->name)));
-      $roles_markup = theme('placeholder', array('text' => t('All roles may use this format')));
+      $form['formats'][$id]['name'] = array('#markup' => drupal_placeholder(array('text' => $format->name)));
+      $roles_markup = drupal_placeholder(array('text' => t('All roles may use this format')));
     }
     else {
       $form['formats'][$id]['name'] = array('#markup' => check_plain($format->name));
diff --git modules/filter/filter.module modules/filter/filter.module
index 934a558..7c1a1c3 100644
--- modules/filter/filter.module
+++ modules/filter/filter.module
@@ -268,7 +268,7 @@ function filter_admin_format_title($format) {
 function filter_permission() {
   $perms['administer filters'] = array(
     'title' => t('Administer and use any text formats and filters'),
-    'description' => theme('placeholder', array('text' => t('Warning: This permission may have security implications depending on how the text format is configured.'))),
+    'description' => drupal_placeholder(array('text' => t('Warning: This permission may have security implications depending on how the text format is configured.'))),
   );
 
   // Generate permissions for each text format. Warn the administrator that any
@@ -278,10 +278,10 @@ function filter_permission() {
     if (!empty($permission)) {
       // Only link to the text format configuration page if the user who is
       // viewing this will have access to that page.
-      $format_name_replacement = user_access('administer filters') ? l($format->name, 'admin/config/content/formats/' . $format->format) : theme('placeholder', array('text' => $format->name));
+      $format_name_replacement = user_access('administer filters') ? l($format->name, 'admin/config/content/formats/' . $format->format) : drupal_placeholder(array('text' => $format->name));
       $perms[$permission] = array(
         'title' => t("Use the !text_format text format", array('!text_format' => $format_name_replacement,)),
-        'description' => theme('placeholder', array('text' => t('Warning: This permission may have security implications depending on how the text format is configured.'))),
+        'description' => drupal_placeholder(array('text' => t('Warning: This permission may have security implications depending on how the text format is configured.'))),
       );
     }
   }
diff --git modules/node/node.module modules/node/node.module
index d9a9aaa..bdb10ab 100644
--- modules/node/node.module
+++ modules/node/node.module
@@ -1423,7 +1423,7 @@ function node_permission() {
     ),
     'administer nodes' => array(
       'title' => t('Administer content'),
-      'description' => theme('placeholder', array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
+      'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
     ),
     'access content' => array(
       'title' => t('View published content'),
diff --git modules/node/node.pages.inc modules/node/node.pages.inc
index d9a014f..10a0bba 100644
--- modules/node/node.pages.inc
+++ modules/node/node.pages.inc
@@ -521,7 +521,7 @@ function node_revision_overview($node) {
       $row[] = array('data' => t('!date by !username', array('!date' => l(format_date($revision->timestamp, 'short'), "node/$node->nid"), '!username' => theme('username', array('account' => $revision))))
                                . (($revision->log != '') ? '<p class="revision-log">' . filter_xss($revision->log) . '</p>' : ''),
                      'class' => array('revision-current'));
-      $operations[] = array('data' => theme('placeholder', array('text' => t('current revision'))), 'class' => array('revision-current'), 'colspan' => 2);
+      $operations[] = array('data' => drupal_placeholder(array('text' => t('current revision'))), 'class' => array('revision-current'), 'colspan' => 2);
     }
     else {
       $row[] = t('!date by !username', array('!date' => l(format_date($revision->timestamp, 'short'), "node/$node->nid/revisions/$revision->vid/view"), '!username' => theme('username', array('account' => $revision))))
diff --git modules/php/php.module modules/php/php.module
index e1c6a85..827fd04 100644
--- modules/php/php.module
+++ modules/php/php.module
@@ -31,7 +31,7 @@ function php_permission() {
   return array(
     'use PHP for settings' => array(
       'title' => t('Use PHP for settings'),
-      'description' => theme('placeholder', array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
+      'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
     ),
   );
 }
diff --git modules/profile/profile.pages.inc modules/profile/profile.pages.inc
index 8728364..a349445 100644
--- modules/profile/profile.pages.inc
+++ modules/profile/profile.pages.inc
@@ -77,7 +77,7 @@ function profile_browse() {
     $output .= theme('pager', array('tags' => NULL));
 
     if ($field->type == 'selection' || $field->type == 'list' || $field->type == 'textfield') {
-      $title = strtr(check_plain($field->page), array('%value' => theme('placeholder', array('text' => $value))));
+      $title = strtr(check_plain($field->page), array('%value' => drupal_placeholder(array('text' => $value))));
     }
     else {
       $title = check_plain($field->page);
diff --git modules/simpletest/simpletest.module modules/simpletest/simpletest.module
index 23b6cdc..0ba0bb6 100644
--- modules/simpletest/simpletest.module
+++ modules/simpletest/simpletest.module
@@ -68,7 +68,7 @@ function simpletest_permission() {
   return array(
     'administer unit tests' => array(
       'title' => t('Administer tests'),
-      'description' => theme('placeholder', array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
+      'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
     ),
   );
 }
diff --git modules/update/update.report.inc modules/update/update.report.inc
index be14d93..495c47a 100644
--- modules/update/update.report.inc
+++ modules/update/update.report.inc
@@ -164,7 +164,7 @@ function theme_update_report($variables) {
       foreach ($project['extra'] as $key => $value) {
         $row .= '<div class="' . implode(' ', $value['class']) . '">';
         $row .= check_plain($value['label']) . ': ';
-        $row .= theme('placeholder', array('text' => $value['data']));
+        $row .= drupal_placeholder(array('text' => $value['data']));
         $row .= "</div>\n";
       }
       $row .= "</div>\n";  // extra div.
@@ -199,7 +199,7 @@ function theme_update_report($variables) {
             break;
             
           default:
-            $base_themes[] = theme('placeholder', array('text' => $base_theme));
+            $base_themes[] = drupal_placeholder(array('text' => $base_theme));
         }
       }
       $row .= t('Depends on: !basethemes', array('!basethemes' => implode(', ', $base_themes)));
diff --git modules/user/user.module modules/user/user.module
index 7957379..0479cbf 100644
--- modules/user/user.module
+++ modules/user/user.module
@@ -767,11 +767,11 @@ function user_permission() {
   return array(
     'administer permissions' =>  array(
       'title' => t('Administer permissions'),
-      'description' => theme('placeholder', array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
+      'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
     ),
     'administer users' => array(
       'title' => t('Administer users'),
-      'description' => theme('placeholder', array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
+      'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
     ),
     'access user profiles' => array(
       'title' => t('View user profiles'),
@@ -785,7 +785,7 @@ function user_permission() {
     ),
     'select account cancellation method' => array(
       'title' => t('Select method for cancelling own account'),
-      'description' => theme('placeholder', array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
+      'description' => drupal_placeholder(array('text' => t('Warning: Give to trusted roles only; this permission has security implications.'))),
     ),
   );
 }
