Index: trunk/nv/gfx/cached_buffer.hh
===================================================================
--- trunk/nv/gfx/cached_buffer.hh	(revision 105)
+++ trunk/nv/gfx/cached_buffer.hh	(revision 106)
@@ -104,6 +104,10 @@
 		}
 
-		void commit()
+		/**
+		 * Returns true if buffer has been recreated
+		 */
+		bool commit()
 		{
+			bool result = false;
 			size_t bsize = (size_t)get_max_size();
 			if ( m_data.size() > bsize )
@@ -112,4 +116,5 @@
 				create_buffer( bsize );
 				m_full_update = true;
+				result = true;
 			}
 			m_buffer->bind();
@@ -128,4 +133,5 @@
 			m_min = get_max_size();
 			m_max = 0;
+			return result;
 		}
 
Index: trunk/tests/cachebuf_test/nv_cachebuf_test.cc
===================================================================
--- trunk/tests/cachebuf_test/nv_cachebuf_test.cc	(revision 105)
+++ trunk/tests/cachebuf_test/nv_cachebuf_test.cc	(revision 106)
@@ -171,7 +171,9 @@
 			w.draw();
 		}
-		m_quad_cache->commit();
-		m_va->update_vertex_buffer( m_coord_loc, (nv::vertex_buffer*)m_quad_cache->get_buffer(), false );
-		m_va->update_vertex_buffer( m_color_loc, (nv::vertex_buffer*)m_quad_cache->get_buffer(), false );
+		if (m_quad_cache->commit() )
+		{
+			m_va->update_vertex_buffer( m_coord_loc, (nv::vertex_buffer*)m_quad_cache->get_buffer(), false );
+			m_va->update_vertex_buffer( m_color_loc, (nv::vertex_buffer*)m_quad_cache->get_buffer(), false );
+		}
 
 		m_window->get_context()->clear( m_clear_state );
