This posting is older than 6 months and can contain outdated information.
Hello Kjeld,
thanks for reporting this.
I, too, couldn't find the source of the problem, so I asked those who 
should know:
http://lists.apple.com/archives/Applescript-implementors/2007/Nov/msg00102..html
The problem seems to be that sdp requires an sdef file to contain an 
application class:
So, if you replace
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd 
"> 
<dictionary title="Remote Buddy"> 
<suite name="Remote Buddy Suite" code="RmBS"> 
<command name="behaviourcore" code="behacore" description="Modify 
Behaviour handling."> 
<cocoa class="RBBehaviourScriptCommand"/> 
...
by
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE dictionary SYSTEM "file://localhost/System/Library/DTDs/sdef.dtd 
"> 
<dictionary title="Remote Buddy"> 
<suite name="Remote Buddy Suite" code="RmBS"> 
<class name="application" code="capp" description="The application 
program"> 
</class> 
<command name="behaviourcore" code="behacore" description="Modify 
Behaviour handling."> 
<cocoa class="RBBehaviourScriptCommand"/> 
...
you can generate the header:
-- cut -- 
/* 
* RemoteBuddy.h 
*/
#import <AppKit/AppKit.h> 
#import <ScriptingBridge/ScriptingBridge.h>
@class RemoteBuddyApplication;
 
/* 
* Remote Buddy Suite 
*/
// The application program 
@interface RemoteBuddyApplication : SBApplication
- (id) behaviourcoreAccessor:(NSString *)accessor identifier:(NSString 
*)identifier stickyValue:(BOOL)stickyValue useActivationEventCode: 
(NSString *)useActivationEventCode;  // Modify Behaviour handling. 
- (NSArray *) behaviourlistAllGlobalActionsForIdentifier:(NSString 
*)allGlobalActionsForIdentifier;  // Receive a list of the identifiers 
of all available Behaviours or the available actions of one Behaviour. 
- (BOOL) behaviouractionEvent:(NSString *)event buttonCode: 
(NSInteger)buttonCode actionIdentifier:(NSString 
*)actionIdentifier;  // Invoke an action by its identifier 
- (NSString *) localizeString:(NSString *)string inBundle:(NSString 
*)inBundle;  // Localize a string using a Localizable.strings look up 
table inside a bundle. 
- (void) osdmessageDisplayText:(NSString *)displayText forDuration: 
(double)forDuration;  // Display a textual OSD message. 
- (id) readValueForKey:(NSString *)valueForKey inDomain:(NSString 
*)inDomain withDefaultValue:(id)withDefaultValue;  // Read a 
previously stored value. 
- (void) scriptremoteButton:(NSString *)button event:(NSString 
*)event;  // The Script Remote is a virtual remote control input 
device in Remote Buddy. It enables you to f.ex. send events from 
driver software to Remote Buddy and use Remote Buddy as if it would 
directly support the hardware supported by that driver software. 
- (id) showmenuWithItems:(id)withItems returnValue:(BOOL)returnValue 
menuName:(NSString *)menuName;  // Open a menu for the user to choose 
from. 
- (void) storeValue:(id)value forKey:(NSString *)forKey inDomain: 
(NSString *)inDomain;  // Store a value temporarily or permanently for 
later reuse. All stored values are global to all scripts run, so 
several scripts can share values. 
- (BOOL) visualizeEffect:(NSString *)effect forDuration: 
(double)forDuration withColor:(NSString *)withColor;  // Trigger 
visual effects like fade in / out. 
- (void) virtualkeyboardEvent:(NSString *)event;  // Perform an 
virtual keyboard action. 
- (void) GetURL:(NSString *)x;  // Open an URL
@end 
-- cut --
The RemoteBuddy.sdef will contain the empty application class starting 
with the next version.
Best regards, 
Felix
[standard mail footer removed]