=== modified file 'mixxx/src/mixxxkeyboard.cpp'
--- mixxx/src/mixxxkeyboard.cpp	2009-08-06 06:57:37 +0000
+++ mixxx/src/mixxxkeyboard.cpp	2009-08-10 06:30:08 +0000
@@ -103,7 +103,7 @@
         {
             if (release) {
                 //qDebug() << "Sending MIDI NOTE_OFF";
-                ControlObject::getControl(*pConfigKey)->queueFromMidi(NOTE_OFF, 1);
+                ControlObject::getControl(*pConfigKey)->queueFromMidi(NOTE_OFF, 0);
             }
             else
             {

=== modified file 'mixxx/src/widget/wpushbutton.cpp'
--- mixxx/src/widget/wpushbutton.cpp	2009-03-05 20:35:06 +0000
+++ mixxx/src/widget/wpushbutton.cpp	2009-08-10 06:57:09 +0000
@@ -19,6 +19,7 @@
 #include "wpixmapstore.h"
 #include "controlobject.h"
 #include "controlpushbutton.h"
+#include "wwidget.h"
 //Added by qt3to4:
 #include <QPixmap>
 #include <QtDebug>
@@ -92,7 +93,18 @@
             if (p == 0)
               qDebug() << "Warning: wpushbutton p is null\n";
             else
-              p->setToggleButton(true);
+            {
+              bool bLeftActive=true;
+              if(!selectNode(con,"ButtonState").isNull()){
+                  if(selectNodeQString(con,"ButtonState").contains("RightButton",Qt::CaseInsensitive)){
+                      bLeftActive=false;
+                  }
+              }
+              if(bLeftActive)
+                  p->setToggleButton(true);
+              else
+                  p->setToggleButton(false);
+            }
           }
             // BJW: Removed this so that buttons that are hardcoded as toggle in the source
             // don't get overridden if a skin fails to set them to 2-state. Buttons still

=== modified file 'mixxx/src/widget/wwidget.cpp'
--- mixxx/src/widget/wwidget.cpp	2009-03-05 17:52:08 +0000
+++ mixxx/src/widget/wwidget.cpp	2009-08-10 06:41:23 +0000
@@ -89,6 +89,7 @@
 
         // Check that the control exists
         ControlObject * control = ControlObject::getControl(configKey);
+        
         if (control == NULL) {
             qWarning() << "Requested control does not exist:" << key;
             con = con.nextSibling();
@@ -115,7 +116,6 @@
 	      else if (selectNodeQString(con, "ButtonState").contains("RightButton", Qt::CaseInsensitive))
                     state = Qt::RightButton;
             }
-
             // Connect control proxy to widget
             (new ControlObjectThreadWidget(control))->setWidget(this, bEmitOnDownPress, state);
 

