if ([presence.from isEqual: connection.JID]) {
                [_ui         client: self
                  didChangePresence: presence];
-               OF_SETTER(_presence, presence, YES, 0);
+               OF_SETTER(_presence, presence, true, 0);
        }
 }
 
 
 @property (retain) JubCLIChatUI *sink;
 @property (readonly) OFMutableSet *subRequests;
 
-- (BOOL)Jub_userInputWithStream: (OFStream*)stream
+- (bool)Jub_userInputWithStream: (OFStream*)stream
                           line: (OFString*)line
                      exception: (OFException*)exception;
 - (void)addCommand: (id<JubCLICommand>)command;
 
                      forKey: command.command];
 }
 
-- (BOOL)Jub_userInputWithStream: (OFStream*)stream
+- (bool)Jub_userInputWithStream: (OFStream*)stream
                           line: (OFString*)line
                      exception: (OFException*)exception
 {
                [OFApplication terminate];
 
        if ([line length] == 0)
-               return YES;
+               return true;
 
        if ([line characterAtIndex: 0] != ':') {
                if (_sink == nil) {
                        [of_stdout writeLine: @"No default sink selected, "
                            @"type `:h` for help"];
-                       return YES;
+                       return true;
                }
 
                [_sink send: line];
 
-               return YES;
+               return true;
        }
 
        line = [line stringByDeletingTrailingWhitespaces];
                        [of_stdout writeFormat: @"- %@\n", command.help];
                };
 
-               return YES;
+               return true;
        }
 
        id<JubCLICommand> command = _commands[input[0]];
                [command callWithParameters:
                    [input arrayByRemovingObject: [input firstObject]]];
 
-               return YES;
+               return true;
        }
 
        [of_stdout writeLine: @"Invalid command, type `:h` for help"];
 
-       return YES;
+       return true;
 }
 
 - (void)contactManager: (XMPPContactManager*)manager
 
        GtkTextBuffer *_chat_buffer;
        jub_send_block_t _sendBlock;
        jub_close_block_t _closeBlock;
-       BOOL _bufferEmpty;
+       bool _bufferEmpty;
 }
 @end
 
        self = [super init];
 
        @try {
-               __block volatile BOOL initialized = NO;
+               __block volatile bool initialized = false;
                __block GtkWidget *chat_window;
                __block GtkTextBuffer *chat_buffer;
 
                _closeBlock = [closeBlock copy];
                _sendBlock = [sendBlock copy];
-               _bufferEmpty = YES;
+               _bufferEmpty = true;
 
                g_idle_add_block(^{
                        GtkEntry *chat_entry;
                            [title UTF8String]);
                        gtk_widget_show(chat_window);
 
-                       initialized = YES;
+                       initialized = true;
 
                        g_object_unref(builder);
                });
 - (void)addMessage: (OFString*)text
            sender: (OFString*)sender
 {
-       BOOL first = _bufferEmpty;
-       if (OF_UNLIKELY(_bufferEmpty)) _bufferEmpty = NO;
+       bool first = _bufferEmpty;
+       if (OF_UNLIKELY(_bufferEmpty)) _bufferEmpty = false;
 
        g_idle_add_block(^{
                GtkTextIter end_iter;
 
 
        [client performSelectorOnMainThread: @selector(chatForContact:)
                                 withObject: contact
-                             waitUntilDone: NO];
+                             waitUntilDone: false];
        [pool release];
 }
 
 
 - (bool)showOffline
 {
-       OF_GETTER(_showOffline, YES);
+       OF_GETTER(_showOffline, true);
 }
 
 - (void)setShowOffline: (bool)showOffline