diff --git a/packages/sproutcore-views/lib/views/container_view.js b/packages/sproutcore-views/lib/views/container_view.js
index <HASH>..<HASH> 100644
--- a/packages/sproutcore-views/lib/views/container_view.js
+++ b/packages/sproutcore-views/lib/views/container_view.js
@@ -8,17 +8,20 @@
 require('sproutcore-views/views/view');
 var get = SC.get, set = SC.set, meta = SC.meta;
 
+var childViewsProperty = SC.computed(function() {
+  return get(this, '_childViews');
+}).property('_childViews').cacheable();
+
 SC.ContainerView = SC.View.extend({
 
   init: function() {
     var childViews = get(this, 'childViews');
-    SC.defineProperty(this, 'childViews', SC.View.CHILD_VIEWS_CP);
+    SC.defineProperty(this, 'childViews', childViewsProperty);
 
     this._super();
 
     var _childViews = get(this, '_childViews');
 
-
     childViews.forEach(function(viewName, idx) {
       var view;
ContainerView should always delegate to _childViews. A ContainerView may not have virtual views as children.