Index: lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php
===================================================================
--- lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php	(revision 7037)
+++ lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php	(working copy)
@@ -244,7 +244,7 @@
                 }
 
                 if (isset($oneToOneElement['cascade'])) {
-                    $mapping['cascade'] = $this->_getCascadeMappings($oneToOneElement['cascade']);
+                    $mapping['cascade'] = $oneToOneElement['cascade'];
                 }
 
                 $metadata->mapOneToOne($mapping);
@@ -265,7 +265,7 @@
                 }
                 
                 if (isset($oneToManyElement['cascade'])) {
-                    $mapping['cascade'] = $this->_getCascadeMappings($oneToManyElement['cascade']);
+                    $mapping['cascade'] = $oneToManyElement['cascade'];
                 }
                 
                 $metadata->mapOneToMany($mapping);
@@ -303,7 +303,7 @@
                 $mapping['joinColumns'] = $joinColumns;
                 
                 if (isset($manyToOneElement['cascade'])) {
-                    $mapping['cascade'] = $this->_getCascadeMappings($manyToOneElement['cascade']);
+                    $mapping['cascade'] = $manyToOneElement['cascade'];
                 }
                 
                 $metadata->mapManyToOne($mapping);
@@ -356,7 +356,7 @@
                 }
                 
                 if (isset($manyToManyElement['cascade'])) {
-                    $mapping['cascade'] = $this->_getCascadeMappings($manyToManyElement['cascade']);
+                    $mapping['cascade'] = $manyToManyElement['cascade'];
                 }
 
                 $metadata->mapManyToMany($mapping);
@@ -409,35 +409,6 @@
     }
     
     /**
-     * Gathers a list of cascade options found in the given cascade element.
-     * 
-     * @param $cascadeElement The cascade element.
-     * @return array The list of cascade options.
-     */
-    private function _getCascadeMappings($cascadeElement)
-    {
-        $cascades = array();
-        
-        if (isset($cascadeElement['cascadePersist'])) {
-            $cascades[] = 'persist';
-        }
-        
-        if (isset($cascadeElement['cascadeRemove'])) {
-            $cascades[] = 'remove';
-        }
-        
-        if (isset($cascadeElement['cascadeMerge'])) {
-            $cascades[] = 'merge';
-        }
-        
-        if (isset($cascadeElement['cascadeRefresh'])) {
-            $cascades[] = 'refresh';
-        }
-        
-        return $cascades;
-    }
-
-    /**
      * Loads a mapping file with the given name and returns a map
      * from class/entity names to their corresponding elements.
      * 
Index: lib/Doctrine/ORM/Mapping/AssociationMapping.php
===================================================================
--- lib/Doctrine/ORM/Mapping/AssociationMapping.php	(revision 7037)
+++ lib/Doctrine/ORM/Mapping/AssociationMapping.php	(working copy)
@@ -167,11 +167,22 @@
         $this->fetchMode = isset($mapping['fetch']) ?
                 $mapping['fetch'] : self::FETCH_LAZY;
         $cascades = isset($mapping['cascade']) ? $mapping['cascade'] : array();
-        $this->isCascadeRemove = in_array('remove', $cascades);
+        
+        if (in_array('all', $cascades)) {
+            $cascades = array(
+               'remove',
+               'persist',
+               'refresh',
+               'merge',
+               'detach'
+            );
+        }
+        
+        $this->isCascadeRemove  = in_array('remove',  $cascades);
         $this->isCascadePersist = in_array('persist', $cascades);
         $this->isCascadeRefresh = in_array('refresh', $cascades);
-        $this->isCascadeMerge = in_array('merge', $cascades);
-        $this->isCascadeDetach = in_array('detach', $cascades);
+        $this->isCascadeMerge   = in_array('merge',   $cascades);
+        $this->isCascadeDetach  = in_array('detach',  $cascades);
     }
     
     /**
