--- worksheet.h	2005-03-14 09:04:44.000000000 -0600
+++ worksheet.h	2005-04-01 18:58:30.460343968 -0600
@@ -208,10 +208,10 @@
 	QTable *worksheet;
 	QString birthdate, specifications, newSpecifications;
 	QStringList commandes;
-	int selectedCol,clickedRow,xCol,yCol;
+	int selectedCol,clickedRow,xCol,yCol,selectedCol1;
 	double **wMatrix;
 	bool LeftButton;
 	bool askOnClose;
 };
 
-#endif
+#endif
--- worksheet.cpp	2005-03-17 19:55:26.000000000 -0600
+++ worksheet.cpp	2005-04-01 19:27:15.158150048 -0600
@@ -970,7 +970,7 @@
 QStringList list=selectedColumns();
 removeCol(list);
 }
-
+
 void WksheetWindow::removeCol(const QStringList& list)
 {
 QHeader *header=worksheet->horizontalHeader();
@@ -1999,6 +1999,7 @@
 					worksheet->clearSelection (TRUE);
 				
 				selectedCol=worksheet->horizontalHeader()->sectionAt (me->pos().x());
+				selectedCol1=selectedCol;
 				worksheet->selectColumn (selectedCol);
 				}		
 			return TRUE; 
@@ -2010,7 +2011,18 @@
 				{
 				const QMouseEvent *me = (const QMouseEvent *)e;
 				selectedCol=worksheet->horizontalHeader()->sectionAt (me->pos().x());
-				worksheet->selectColumn (selectedCol);
+				if(selectedCol!=selectedCol1)
+					{
+					// This means that we are in the next column
+					if(worksheet->isColumnSelected(selectedCol,TRUE))
+						{
+					//Since this column is selected, deselect it
+						worksheet->removeSelection(QTableSelection (0,selectedCol1,worksheet->numRows()-1,selectedCol1));
+						}
+					else
+						worksheet->selectColumn (selectedCol);
+					}
+				selectedCol1=worksheet->horizontalHeader()->sectionAt (me->pos().x());
 				}
 			return TRUE;
 			}
@@ -2546,4 +2558,4 @@
 
 WksheetWindow::~WksheetWindow()
 {
-}
+}
