diff --git a/Source/UI/DataViewport.cpp b/Source/UI/DataViewport.cpp
index ecb56c806f0b69a32686f5a9cf14b60239afb8f0..1e6425652b82a3c6c56bba7cd1c41c806ca08a4a 100755
--- a/Source/UI/DataViewport.cpp
+++ b/Source/UI/DataViewport.cpp
@@ -27,7 +27,7 @@
 
 DataViewport::DataViewport() :
     TabbedComponent(TabbedButtonBar::TabsAtRight),
-    tabDepth(32), shutdown(false)
+    tabDepth(32), shutdown(false), tabIndex(0)
 {
 
     tabArray.clear();
@@ -41,7 +41,6 @@ DataViewport::DataViewport() :
     setColour(TabbedComponent::backgroundColourId,
               Colours::darkgrey);
 
-
 }
 
 DataViewport::~DataViewport()
@@ -55,7 +54,8 @@ int DataViewport::addTabToDataViewport(String name, Component* component, Generi
     if (tabArray.size() == 0)
         setVisible(true);
 
-    int tabIndex = getTabbedButtonBar().getNumTabs();
+    //int tabIndex = getTabbedButtonBar().getNumTabs();
+    tabIndex++;
 
     // Viewport* viewport = new Viewport();
     // viewport->setViewedComponent(component, false);
@@ -74,6 +74,10 @@ int DataViewport::addTabToDataViewport(String name, Component* component, Generi
 
     editorArray.add(editor);
 
+    std::cout << "Adding tab with index " << tabIndex << std::endl;
+
+    setCurrentTabIndex(tabArray.size()-1);
+
     return tabIndex;
 
 }
@@ -100,7 +104,7 @@ void DataViewport::destroyTab(int index)
     if (tabArray.size() == 0)
         setVisible(false);
 
-    setCurrentTabIndex(0);
+    setCurrentTabIndex(tabArray.size()-1);
 
 }
 
diff --git a/Source/UI/DataViewport.h b/Source/UI/DataViewport.h
index efdc9e92233d9823d313d2d97e0d9ecc5268ec58..dfb5e44171dc1091cdafe07e8d1159e52996a0c6 100755
--- a/Source/UI/DataViewport.h
+++ b/Source/UI/DataViewport.h
@@ -77,6 +77,7 @@ private:
     Array<GenericEditor*> editorArray;
     void paint(Graphics& g);
     int tabDepth;
+    int tabIndex;
 
     bool shutdown;