diff --git libcloud/loadbalancer/drivers/rackspace.py libcloud/loadbalancer/drivers/rackspace.py
index 0e39fe4..8e4d437 100644
--- libcloud/loadbalancer/drivers/rackspace.py
+++ libcloud/loadbalancer/drivers/rackspace.py
@@ -125,7 +125,8 @@ class RackspaceHTTPHealthMonitor(RackspaceHealthMonitor):
         super_dict = super(RackspaceHTTPHealthMonitor, self)._to_dict()
         super_dict['path'] = self.path
         super_dict['statusRegex'] = self.status_regex
-        super_dict['bodyRegex'] = self.body_regex
+        if (self.body_regex):
+            super_dict['bodyRegex'] = self.body_regex
 
         return super_dict
 
@@ -1455,7 +1456,7 @@ class RackspaceLBDriver(Driver, OpenStackDriverMixin):
                 attempts_before_deactivation=attempts_before_deactivation,
                 path=health_monitor_data.get("path"),
                 status_regex=health_monitor_data.get("statusRegex"),
-                body_regex=health_monitor_data.get("bodyRegex"))
+                body_regex=health_monitor_data.get("bodyRegex", ''))
 
         return None
 
diff --git test/loadbalancer/fixtures/rackspace/v1_slug_loadbalancers_94700_http_health_monitor_no_body_regex.json test/loadbalancer/fixtures/rackspace/v1_slug_loadbalancers_94700_http_health_monitor_no_body_regex.json
new file mode 100644
index 0000000..8809f72
--- /dev/null
+++ test/loadbalancer/fixtures/rackspace/v1_slug_loadbalancers_94700_http_health_monitor_no_body_regex.json
@@ -0,0 +1 @@
+{"loadBalancer":{"name":"new ord balancer","id":94700,"protocol":"HTTP","port":80,"algorithm":"WEIGHTED_LEAST_CONNECTIONS","status":"ACTIVE","cluster":{"name":"ztm-n06.lbaas.ord1.rackspace.net"},"nodes":[{"address":"10.181.231.202","id":94692,"port":80,"status":"ONLINE","condition":"ENABLED","weight":1}],"created":{"time":"2011-12-09T13:30:40Z"},"healthMonitor":{"type":"HTTP","path":"/","delay":10,"timeout":5,"attemptsBeforeDeactivation":2,"statusRegex":"^[234][0-9][0-9]$"},"sessionPersistence":{"persistenceType":"HTTP_COOKIE"},"virtualIps":[{"address":"50.56.49.149","id":2359,"type":"PUBLIC","ipVersion":"IPV4"}],"sourceAddresses":{"ipv6Public":"2001:4801:7901::6/64","ipv4Servicenet":"10.183.252.25","ipv4Public":"184.106.100.25"},"updated":{"time":"2011-12-09T16:51:32Z"},"connectionThrottle":{"maxConnections":100,"minConnections":25,"maxConnectionRate":25,"rateInterval":5},"connectionLogging":{"enabled":true}}}
\ No newline at end of file
diff --git test/loadbalancer/test_rackspace.py test/loadbalancer/test_rackspace.py
index 86e83d4..1e3fa70 100644
--- test/loadbalancer/test_rackspace.py
+++ test/loadbalancer/test_rackspace.py
@@ -500,6 +500,25 @@ class RackspaceLBTests(unittest.TestCase):
 
         self.assertTrue(resp)
 
+    def test_ex_update_balancer_http_health_monitor_with_no_option_body_regex(self):
+        balancer = self.driver.get_balancer(balancer_id='94700')
+        monitor = RackspaceHTTPHealthMonitor(type='HTTP', delay=10, timeout=5,
+            attempts_before_deactivation=2,
+            path='/',
+            status_regex='^[234][0-9][0-9]$',
+            body_regex='')
+
+        balancer = self.driver.ex_update_balancer_health_monitor(balancer, monitor)
+        updated_monitor = balancer.extra['healthMonitor']
+
+        self.assertEquals('HTTP', updated_monitor.type)
+        self.assertEquals(10, updated_monitor.delay)
+        self.assertEquals(5, updated_monitor.timeout)
+        self.assertEquals(2, updated_monitor.attempts_before_deactivation)
+        self.assertEquals('/', updated_monitor.path)
+        self.assertEquals('^[234][0-9][0-9]$', updated_monitor.status_regex)
+        self.assertEquals('', updated_monitor.body_regex)
+
     def test_ex_disable_balancer_health_monitor(self):
         balancer = self.driver.get_balancer(balancer_id='8290')
         balancer = self.driver.ex_disable_balancer_health_monitor(balancer)
@@ -1286,6 +1305,29 @@ class RackspaceLBMockHttp(MockHttpTestCase):
 
         raise NotImplementedError
 
+    def _v1_0_slug_loadbalancers_94700(self, method, url, body, headers):
+        if method == "GET":
+            body = self.fixtures.load("v1_slug_loadbalancers_94700_http_health_monitor_no_body_regex.json")
+            return (httplib.OK, body, {}, httplib.responses[httplib.OK])
+
+        raise NotImplementedError
+
+    def _v1_0_slug_loadbalancers_94700_healthmonitor(self, method, url, body, headers):
+        if method == 'PUT':
+            json_body = json.loads(body)
+
+            self.assertEquals('HTTP', json_body['type'])
+            self.assertEquals(10, json_body['delay'])
+            self.assertEquals(5, json_body['timeout'])
+            self.assertEquals(2, json_body['attemptsBeforeDeactivation'])
+            self.assertEquals('/', json_body['path'])
+            self.assertEquals('^[234][0-9][0-9]$', json_body['statusRegex'])
+            self.assertFalse('bodyRegex' in json_body)
+
+            return (httplib.ACCEPTED, '', {}, httplib.responses[httplib.ACCEPTED])
+
+        raise NotImplementedError
+
     def _v1_0_slug_loadbalancers_3130(self, method, url, body, headers):
         """ update_balancer(b, protocol='HTTPS'), then get_balancer('3130') """
         if method == "PUT":
