diff --git a/includes/common.inc b/includes/common.inc
index 7eb689261e2805feea0f238d2af84bd73fbf40cc..8a47e367182f418fbbf90aca3d67af21608afdc7 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -257,7 +257,7 @@ function drupal_goto($path = '', $query = NULL, $fragment = NULL) {
  * Generates a site offline message
  */
 function drupal_site_offline() {
-  header('HTTP/1.0 503 Service unavailable');
+  drupal_set_header('HTTP/1.0 503 Service unavailable');
   drupal_set_title(t('Site offline'));
   print theme('maintenance_page', variable_get('site_offline_message',
     t('%site is currently under maintenance. We should be back shortly. Thank you for your patience.', array('%site' => variable_get('site_name', t('This drupal site'))))));
@@ -267,7 +267,7 @@ function drupal_site_offline() {
  * Generates a 404 error if the request can not be handled.
  */
 function drupal_not_found() {
-  header('HTTP/1.0 404 Not Found');
+  drupal_set_header('HTTP/1.0 404 Not Found');
   watchdog('page not found', t('%page not found.', array('%page' => theme('placeholder', $_GET['q']))), WATCHDOG_WARNING);
 
   $path = drupal_get_normal_path(variable_get('site_404', ''));
@@ -287,7 +287,7 @@ function drupal_not_found() {
  * Generates a 403 error if the request is not allowed.
  */
 function drupal_access_denied() {
-  header('HTTP/1.0 403 Forbidden');
+  drupal_set_header('HTTP/1.0 403 Forbidden');
   watchdog('access denied', t('%page denied access.', array('%page' => theme('placeholder', $_GET['q']))), WATCHDOG_WARNING, l(t('view'), $_GET['q']));
 
   $path = drupal_get_normal_path(variable_get('site_403', ''));
diff --git a/modules/blogapi.module b/modules/blogapi.module
index 9aad83b7386b266a7607de6a729d05052458b079..f1330f436bf4a1df42459e4392ba4080778b1d71 100644
--- a/modules/blogapi.module
+++ b/modules/blogapi.module
@@ -600,7 +600,7 @@ function blogapi_rsd() {
   $base = url('', NULL, NULL, TRUE);
   $blogid = 1; # until we figure out how to handle multiple bloggers
 
-  header('Content-Type: application/rsd+xml');
+  drupal_set_header('Content-Type: application/rsd+xml; charset=utf-8');
   print <<<__RSD__
 <?xml version="1.0"?>
 <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
diff --git a/modules/blogapi/blogapi.module b/modules/blogapi/blogapi.module
index 9aad83b7386b266a7607de6a729d05052458b079..f1330f436bf4a1df42459e4392ba4080778b1d71 100644
--- a/modules/blogapi/blogapi.module
+++ b/modules/blogapi/blogapi.module
@@ -600,7 +600,7 @@ function blogapi_rsd() {
   $base = url('', NULL, NULL, TRUE);
   $blogid = 1; # until we figure out how to handle multiple bloggers
 
-  header('Content-Type: application/rsd+xml');
+  drupal_set_header('Content-Type: application/rsd+xml; charset=utf-8');
   print <<<__RSD__
 <?xml version="1.0"?>
 <rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">