diff --git a/Lib/plat-mac/FrameWork.py b/Lib/plat-mac/FrameWork.py
index 8a9b3a5..8f8be55 100644
--- a/Lib/plat-mac/FrameWork.py
+++ b/Lib/plat-mac/FrameWork.py
@@ -229,7 +229,7 @@
     def asyncevents(self, onoff):
         """asyncevents - Set asynchronous event handling on or off"""
         if MacOS.runtimemodel == 'macho':
-            raise 'Unsupported in MachoPython'
+            raise NotImplementedError('Unsupported in MachoPython')
         old = self._doing_asyncevents
         if old:
             MacOS.SetEventHandler()
@@ -577,7 +577,7 @@
 
     def delitem(self, item):
         if item != len(self.items):
-            raise 'Can only delete last item of a menu'
+            raise ValueError('Can only delete last item of a menu')
         self.menu.DeleteMenuItem(item)
         del self.items[item-1]
 
diff --git a/Lib/plat-mac/MiniAEFrame.py b/Lib/plat-mac/MiniAEFrame.py
index 8e551a5..eed7428 100644
--- a/Lib/plat-mac/MiniAEFrame.py
+++ b/Lib/plat-mac/MiniAEFrame.py
@@ -141,7 +141,8 @@
         elif ('****', '****') in self.ae_handlers:
             _function = self.ae_handlers[('****', '****')]
         else:
-            raise 'Cannot happen: AE callback without handler', (_class, _type)
+            raise RuntimeError('AE callback without handler: '
+                               + str((_class, _type)))
 
         # XXXX Do key-to-name mapping here
 
diff --git a/Lib/plat-mac/PixMapWrapper.py b/Lib/plat-mac/PixMapWrapper.py
index 7edbac2..a4bacaa 100644
--- a/Lib/plat-mac/PixMapWrapper.py
+++ b/Lib/plat-mac/PixMapWrapper.py
@@ -93,7 +93,8 @@
 
     def __setattr__(self, attr, val):
         if attr == 'baseAddr':
-            raise 'UseErr', "don't assign to .baseAddr -- assign to .data instead"
+            raise RuntimeError("don't assign to .baseAddr "
+                               "-- assign to .data instead")
         elif attr == 'data':
             self.__dict__['data'] = val
             self._stuff('baseAddr', id(self.data) + MacOS.string_id_to_buffer)
@@ -121,7 +122,7 @@
             return self._unstuff('rowBytes') & 0x7FFF
         elif attr == 'bounds':
             # return bounds in official Left, Top, Right, Bottom order!
-            return ( \
+            return (
                 self._unstuff('left'),
                 self._unstuff('top'),
                 self._unstuff('right'),
@@ -161,7 +162,7 @@
         # so convert if necessary
         if format != imgformat.macrgb and format != imgformat.macrgb16:
             # (LATER!)
-            raise "NotImplementedError", "conversion to macrgb or macrgb16"
+            raise NotImplementedError("conversion to macrgb or macrgb16")
         self.data = s
         self.bounds = (0,0,width,height)
         self.cmpCount = 3
@@ -182,7 +183,7 @@
             return self.data
         # otherwise, convert to the requested format
         # (LATER!)
-            raise "NotImplementedError", "data format conversion"
+            raise NotImplementedError("data format conversion")
 
     def fromImage(self,im):
         """Initialize this PixMap from a PIL Image object."""
