Ok I fully agree. But but but take the following in wich I inserted a controsource (m_control I), set the value to 436343, it doesn't display you 'Donald Boyd'.
PUBLIC oForm, m_control
oForm = CREATEOBJECT("clscombotest"

oForm.show()
m_control = 436343
DEFINE CLASS clscombotest AS form
DoCreate = .T.
Caption = "Form"
Name = "clscombotest"
ADD OBJECT combo1 AS combobox WITH ;
ControlSource = m_control,;
BoundColumn = 2, ;
ColumnCount = 2, ;
ColumnWidths = "125,100", ;
RowSourceType = 6, ;
RowSource = "Refs.name, key", ;
ControlSource = "refs.key", ;
Height = 24, ;
Left = 56, ;
Top = 68, ;
Width = 252, ;
BoundTo = .T., ;
Name = "Combo1"
PROCEDURE Load
CREATE CURSOR Refs (name c(25), key I)
INSERT INTO Refs (name, key) VALUES ("Bill Smith", 234567)
INSERT INTO Refs (name, key) VALUES ("Sue Ellen", 314231)
INSERT INTO Refs (name, key) VALUES ("Donald Boyd", 436343)
INSERT INTO Refs (name, key) VALUES ("Claire Seagull", 898668)
ENDPROC
ENDDEFINE
Now, use the following (with strings): it displays you the right item ('Donald Boyd')
PUBLIC oForm, m_control
oForm = CREATEOBJECT("clscombotest"

oForm.show()
m_control = '436343'
DEFINE CLASS clscombotest AS form
DoCreate = .T.
Caption = "Form"
Name = "clscombotest"
ADD OBJECT combo1 AS combobox WITH ;
ControlSource = m_control,;
BoundColumn = 2, ;
ColumnCount = 2, ;
ColumnWidths = "125,100", ;
RowSourceType = 6, ;
RowSource = "Refs.name, key", ;
ControlSource = "refs.key", ;
Height = 24, ;
Left = 56, ;
Top = 68, ;
Width = 252, ;
BoundTo = .T., ;
Name = "Combo1"
PROCEDURE Load
CREATE CURSOR Refs (name c(25), key C(6))
INSERT INTO Refs (name, key) VALUES ("Bill Smith", '234567')
INSERT INTO Refs (name, key) VALUES ("Sue Ellen", '314231')
INSERT INTO Refs (name, key) VALUES ("Donald Boyd", '436343')
INSERT INTO Refs (name, key) VALUES ("Claire Seagull", '898668')
ENDPROC
ENDDEFINE
Isn't it interesting ?
Francis