diff -rupN original/moko-notify.c new/moko-notify.c
--- original/moko-notify.c	2007-12-19 13:29:45.000000000 +0100
+++ new/moko-notify.c	2008-10-05 19:24:32.000000000 +0200
@@ -37,8 +37,8 @@ G_DEFINE_TYPE (MokoNotify, moko_notify, 
         MOKO_TYPE_NOTIFY, MokoNotifyPrivate))
 
 #define DEFAULT_RINGTONE "/default_ringtone.ogg"
-#define SYS_BRIGHTNESS "/sys/class/backlight/gta01-bl"
-#define SYS_VIBRATE "/sys/class/leds/gta01:vibrator"
+#define SYS_BRIGHTNESS "/sys/class/backlight/pcf50633-bl"
+#define SYS_VIBRATE "/sys/class/leds/neo1973:vibrator"
 
 struct _MokoNotifyPrivate
 {
@@ -59,7 +59,7 @@ enum
 static guint notify_signals[LAST_SIGNAL] = {0, };
 */
 static void moko_notify_start_ringtone (MokoNotify *notify);
-
+static void moko_notify_start_ringtone_sms (MokoNotify *notify);
 /*
  * Check the current screen brightness, raise it if necessary
  */
@@ -93,7 +93,8 @@ moko_notify_check_brightness (void)
     g_error_free (err);
   }
   err = NULL;
-  if (g_io_channel_write_chars (dev, "5000", -1, &bytes, &err)
+  if (g_io_channel_write_chars (dev, "63", -1, &bytes, &err) 
+                               /* GTA02 fix also by kasjo */
         != G_IO_STATUS_NORMAL)
   {
     g_warning (err->message);
@@ -144,6 +145,28 @@ play_timeout (MokoNotify *notify)
 }
 
 static void
+moko_notify_start_ringtone_sms (MokoNotify *notify)
+{
+  MokoNotifyPrivate *priv;
+
+  g_return_if_fail (MOKO_IS_NOTIFY (notify));
+  priv = notify->priv;
+
+  if (!priv->pac || !priv->started)
+    return;
+
+  priv->operation = pa_context_play_sample (priv->pac,
+                                            "ringtone_sms",
+                                            NULL,
+                                            PA_VOLUME_NORM,
+                                            NULL,
+                                            NULL);
+  g_timeout_add (500, (GSourceFunc)play_timeout, (gpointer)notify);
+  g_debug ("Playing");
+}
+
+
+static void
 moko_notify_start_ringtone (MokoNotify *notify)
 {
   MokoNotifyPrivate *priv;
@@ -263,6 +286,26 @@ moko_notify_start (MokoNotify *notify)
   moko_notify_start_ringtone (notify);
 }
 
+
+/* SMS is coming!
+ */
+void
+moko_notify_start_sms (MokoNotify *notify)
+{
+  MokoNotifyPrivate *priv;
+
+  g_return_if_fail (MOKO_IS_NOTIFY (notify));
+  priv = notify->priv;
+
+  priv->started ++;
+  if (priv->started != 1)
+    return;
+
+  moko_notify_check_brightness ();
+  moko_notify_start_vibrate ();
+  moko_notify_start_ringtone_sms (notify);
+}
+
 /* Stop the ringtone and the vibration alert */
 void
 moko_notify_stop (MokoNotify *notify)
diff -rupN original/moko-notify.h new/moko-notify.h
--- original/moko-notify.h	2007-12-19 13:29:45.000000000 +0100
+++ new/moko-notify.h	2008-10-05 19:24:32.000000000 +0200
@@ -73,6 +73,9 @@ void
 moko_notify_start (MokoNotify *notify);
 
 void
+moko_notify_start_sms (MokoNotify *notify);
+
+void
 moko_notify_stop (MokoNotify *notify);
 
 G_END_DECLS
diff -rupN original/moko-sms.c new/moko-sms.c
--- original/moko-sms.c	2008-09-02 10:47:21.000000000 +0200
+++ new/moko-sms.c	2008-10-05 19:24:39.000000000 +0200
@@ -635,7 +635,7 @@ update_notification (MokoSms *sms, gbool
   /* Show notification */
   if (show) {
     notify_notification_show (priv->notification, NULL);
-    moko_notify_start (priv->notify);
+    moko_notify_start_sms (priv->notify);
     g_timeout_add (1000, (GSourceFunc)stop_notify_timeout, sms);
   }
 }
