 			{
 				if (m_activeFormIndex == -1 || m_activeFormIndex == m_forms.length - 1)
 				{
-					setActiveFormIndex(m_forms.length - 1);
+					applyFormIndex(m_forms.length - 1, false);
 				}
 			}
 		}

			}
			else
			{
				setActiveFormIndex(m_activeFormIndex + 1);
			}
		}
		
		protected function form_back(e:FormEvent):void
		{
			setActiveFormIndex(m_activeFormIndex - 1);
		}
	}
}
				{
					if (m_forms.length)
					{
						applyFormIndex(0, false);
					}
					return;
				}
			}
			applyFormIndex(m_activeFormIndex, false);
		}

		protected function applyFormIndex(index:int, dispatchEvents : Boolean) : void
		{
			index = Math.max(Math.min(index, m_forms.length - 1), 0);
			if (index == m_activeFormIndex)
			{
				return;
			}

			var oldIndex:int = m_activeFormIndex;
			var newIndex:int = index;
			
			var event:FormEvent;
			if (dispatchEvents && m_activeFormIndex != -1)
			{
				event = new FormEvent(FormEvent.FORM_WILL_CHANGE, false, true);
				event.oldIndex = oldIndex;
				event.newIndex = newIndex;
				dispatchEvent(event);
				if (event.isDefaultPrevented())
				{
					return;
				}
			}

			if (m_activeFormIndex != -1)
			{
				Form(m_forms[m_activeFormIndex]).deactivate();
			}
			Form(m_forms[index]).activate();
			m_activeFormIndex = index;
			invalidate();

			event = new FormEvent(FormEvent.FORM_CHANGE);
			event.oldIndex = oldIndex;
			event.newIndex = newIndex;
			if (dispatchEvents)
			{
				dispatchEvent(event);
			}
		}
		
		protected function addForm(form : Form) : void
