diff --git a/TODO b/TODO
index a211a22d03dc1495461b38a7854d393e2de04e9c..5d738f5b09caabf82106f861da42b0742637f1e1 100644
--- a/TODO
+++ b/TODO
@@ -3,8 +3,7 @@ Current:
 * Finish enotify extension:
 	- Mailto: prevent multiple notifications to a single recipient
 	- Regorous testing
-* Finish and test new multiscript support
-	- Sort multiscript directories for lda plugin.
+* Test new multiscript support
 
 Next (in order of descending priority/precedence):
 
diff --git a/src/plugins/lda-sieve/lda-sieve-plugin.c b/src/plugins/lda-sieve/lda-sieve-plugin.c
index 3dbc898b668dbf45ea400001991564092959b01f..efc34c70889c83ccf8a25875a6c7562085c4d4ba 100644
--- a/src/plugins/lda-sieve/lda-sieve-plugin.c
+++ b/src/plugins/lda-sieve/lda-sieve-plugin.c
@@ -284,7 +284,21 @@ static void lda_sieve_multiscript_get_scriptfiles
 		const char *file;
 
 		while ( (file=sieve_directory_get_scriptfile(sdir)) != NULL ) {
-			array_append(scriptfiles, &file, 1);
+			const char *const *scripts;
+			unsigned int count, i;
+
+			/* Insert into sorted array */
+
+			scripts = array_get(scriptfiles, &count);
+			for ( i = 0; i < count; i++ ) {
+				if ( strcmp(file, scripts[i]) < 0 )
+					break;			
+			}
+	
+			if ( i == count ) 
+				array_append(scriptfiles, &file, 1);
+			else
+				array_insert(scriptfiles, i, &file, 1);
 		}
 
 		sieve_directory_close(&sdir);